使用new关键字调用函数

test.js

代码如下

function Person(name, age, obj) {

var o = new Object();

o.name = name;

o.age=age;

o.obj=obj;

o.sayName=function(){

alert(this.name);

}

// return o;

//

this.sayName=function(){

alert(name);

}

console.log(this);

}

var friend=new Person("nike", 29, "software engineer");

console.log(friend);

friend.sayName();

study.html

代码如下

<!DOCTYPE html>

<html lang="zh-cn">

<head>

<meta charset="en">

</head>

<body>

<script src="test.js"></script>

</body>

</html>

运行结果

修改test.js代码

function Person(name, age, obj) {

var o = new Object();

o.name = name;

o.age=age;

o.obj=obj;

o.sayName=function(){

alert(this.name);

}

console.log(this);

return o;

}

var friend=new Person("nike", 29, "software engineer");

console.log(friend);

friend.sayName();

控制台输出

扩展

修改test.js代码

定义变量,存放匿名函数的地址,然后使用该变量来调用函数

var Person = function(name, age, obj) {

var o = new Object();

o.name = name;

o.age=age;

o.obj=obj;

o.sayName=function(){

alert(this.name);

}

console.log(this);

return o;

}

var friend=new Person("nike", 29, "software engineer");

console.log(friend);

friend.sayName();

控制台输出

同上一步结果

结论

1、new js函数名称(参数列表),会把对应的函数当做构造函数来使用,如果函数未定义返回值,默认的会返回通过构造函数(被调用函数)构造的对象实例;如果函数定义了返回值,则返回定义的返回值。

2、使用new js函数名称(参数列表)调用函数,函数中的 this 代表了新构造的对象实例。

3、可以直接通过定义变量,存放匿名函数的地址,然后使用该变量来调用函数

JavaScript 使用new关键字调用函数的更多相关文章

  1. Js 使用new关键字调用函数和直接调用函数的区别

    最近开始学习js,在看到书上的一个例子时,引发了我的一系列思考: 书上例子: function Person(name,age,job){ var o =new Object(); o.name=na ...

  2. 【javaScript基础】马上调用函数表达式

    在javaScript中,每一个函数被调用时,都会创建一个新的运行上下文.由于在一个函数里面定义的变量和函数仅仅能在里面訪问.在外面是不行的.上下文提供了一种非常easy的方法来创建私有性. //ma ...

  3. 【JavaScript】关于 setInterval() 调用函数方法的一次实验

    实验主题: setInterval() 方法是 JS 中比较常用的一个方法.setInterval() 方法可以按照指定的周期 ( 毫秒 ) 来调用函数方法或计算表达式. setInterval() ...

  4. Javascript中的定时调用函数setInterval()和setTimeout()

    首先介绍这两个函数 一.setInterval() 按照指定的周期来调用函数或表达式,执行多次.(时间单位:ms) timer = setInterval("content =documen ...

  5. [转]JavaScript通过参数动态调用函数——js中eval实现反射

    以下文章出自  http://blog.rongzhiwang.com/king/archive/2012/08/13/javascriptjseval.aspx       今天碰到人问这样一个问题 ...

  6. JavaScript指定周期来调用函数setTimeout和setInterval

    setTimeout方法:setTimeout setInterval方法:setInterval

  7. 深入解析Javascript中this关键字的使用

    深入解析Javascript中面向对象编程中的this关键字 在Javascript中this关键字代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如: function TestFun ...

  8. JavaScript中以构造函数的方式调用函数

    转自:http://www.cnblogs.com/Saints/p/6012188.html 构造器函数(Constructor functions)的定义和任何其它函数一样,我们可以使用函数声明. ...

  9. 理解JavaScript的立即调用函数表达式(IIFE)

    首先这是js的一种函数调用写法,叫立即执行函数表达式(IIFE,即immediately-invoked function expression).顾名思义IIFE可以让你的函数立即得到执行(废话). ...

随机推荐

  1. SpringCloud微服务实现生产者消费者+ribbon负载均衡

    一.生产者springcloud_eureka_provider (1)目录展示 (2)导入依赖 <dependency> <groupId>org.springframewo ...

  2. Ansible-playbook之循环判断

    1.循环 (loop) # 使用循环创建硬连接:x连接到y:z连接到k: - hosts: web - name: Create two hard links file: src: "{{ ...

  3. 带你揭秘Shiro(二)

    授权流程 1.对subject进行授权,调用方法isPermitted("permission串") 2.SecurityManager执行授权,通过ModularRealmAut ...

  4. Spring Boot 2.X 国际化

    国际化文件的编写 messages.properties init project 7月前 messages_en_US.properties init project 7月前 messages_zh ...

  5. Linux命令学习-cat命令

    Linux中,cat命令的全称是concatenate,主要用于显示文件内容. 查看centos系统版本 cat /etc/centos-release 查看文件 gogs.log 的内容 cat g ...

  6. Maven pom.xml文件深度学习

    本文介绍Maven项目构建中,pom.xml文件的生成规则和常用节点的使用方法.pom.xml官方网址:http://maven.apache.org/pom.html pom简介 pom作为项目对象 ...

  7. WPF使用FlowDocument实现图文混排

    代码: <RichTextBox CaretBrush="#fff" Background="Transparent" BorderThickness=& ...

  8. 一分钟理解Java公平锁与非公平锁

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  9. 龙芯电脑上Electron应用开发

    背景 最近在一台龙芯电脑(系统是中兴新支点,Linux)上开发electron应用. PS:龙芯是国产的cpu,采用是mips架构,类似x86.arm. 安装NodeJS 安装步骤请查看:https: ...

  10. js-07-事件

    一.js事件绑定在对象上的三种方法 a:将事件绑定在元素标签的属性上 <h3 onclick="console.log('奥特曼打怪兽')">海绵宝宝历险记</h ...