怎样理解没有this的构造函数

如果一个构造函数内部没有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

原文地址:https://www.cnblogs.com/aisowe/p/11653157.html