如果一个构造函数内部没有this, 那可以说这个压根不是构造函数, 因为他并不能返回一个实例对象; 

function Person(name) { 
    var name = name; 
}; 
 
var lilei = new Person("Lilei"); 
lilei; // {}; 
lilei instanceof Person; // true

 

由上面的代码可知, 如果一个构造函数中没有this, 那使用new命令创建的实例对象是一个空对象, 但这个空对象的原型确实来自Person, 原因是new命令执行的四个步骤中, this是必要的. 如果没有, 那就无法将 lilei这个空对象赋值给this, 自然无法继承构造函数声明的属性和方法, 

 

new命令的执行过程参见: https://www.cnblogs.com/aisowe/p/11652991.html

发布评论

分享到:

IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

怎样理解new命令的执行过程讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。