test.js
代码如下
functionPerson(name,age,obj){
varo=newObject();
o.name=name;
o.age=age;
o.obj=obj;
o.sayName=function(){
alert(this.name);
}
//returno;
//
this.sayName=function(){
alert(name);
}
console.log(this);
}
varfriend=newPerson("nike",29,"softwareengineer");
console.log(friend);
friend.sayName();
study.html
代码如下
<!DOCTYPEhtml>
<htmllang="zh-cn">
<head>
<metacharset="en">
</head>
<body>
<scriptsrc="test.js"></script>
</body>
</html>
运行结果
修改test.js代码
functionPerson(name,age,obj){
varo=newObject();
o.name=name;
o.age=age;
o.obj=obj;
o.sayName=function(){
alert(this.name);
}
console.log(this);
returno;
}
varfriend=newPerson("nike",29,"softwareengineer");
console.log(friend);
friend.sayName();
控制台输出
扩展
修改test.js代码
定义变量,存放匿名函数的地址,然后使用该变量来调用函数
varPerson=function(name,age,obj){
varo=newObject();
o.name=name;
o.age=age;
o.obj=obj;
o.sayName=function(){
alert(this.name);
}
console.log(this);
returno;
}
varfriend=newPerson("nike",29,"softwareengineer");
console.log(friend);
friend.sayName();
控制台输出
同上一步结果
结论
1、newjs函数名称(参数列表),会把对应的函数当做构造函数来使用,如果函数未定义返回值,默认的会返回通过构造函数(被调用函数)构造的对象实例;如果函数定义了返回值,则返回定义的返回值。
2、使用newjs函数名称(参数列表)调用函数,函数中的this代表了新构造的对象实例。
3、可以直接通过定义变量,存放匿名函数的地址,然后使用该变量来调用函数
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h56544.shtml