概述
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 和 new 构造函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复