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

Posted aisowe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样理解没有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

以上是关于怎样理解没有this的构造函数的主要内容,如果未能解决你的问题,请参考以下文章

怎样理解this

无法解析片段中的 ViewModelProvider 构造?

怎样理解构造函数

c++11的std::thread能用类的成员函数构造一个线程吗?语法怎样?

构造方法后面带:this()

在片段中使用上下文