function people(name) { 这样定义是在全局命名空间(global namespace)
name: name,
sayname: function() {
alert(this.name);
}
}
jack = people("jack"); 这个时候 this 指的是 jack
var a = jack.sayname();
a(); 输出undefined的,因为a 的 this 指向全局变量(global variable),没有 name
修改后
function People(name) {
this.name: name,
sayname: function(){
alert(this.name);
}
}
var a = new People("jack"); 每次new 都会产生新的sayname,使用People.prototype.sayname可以实现共享
new 的作用是产生一个全新的空对象,然后调用后面的构造函数 new fn(); 然后把this指向新对象,属性也都加上去
下面这种形式也是在实例化,因为是匿名构造函数,所以形式不同:
new (function(a) {this.a = a})()
转载于:https://www.cnblogs.com/chuangweili/p/5161001.html
最后
以上就是内向导师最近收集整理的关于this 和 new 构造函数的全部内容,更多相关this内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复