new-一个对象的过程发生了什么

40次阅读

共计 375 个字符,预计需要花费 1 分钟才能阅读完成。

当你要创建某一个类的实例的时候,会用到 new 操作符。但是这个过程到底发生了什么呢?

1、创建了一个新对象。(不知道可不可以解释为从堆内存里开辟了一块内存

2、将构造函数的作用域赋值给了新对象,也就是说谁被 new 了,this 就指向谁。
假设有一个类 Person,创建它的实例 louis

function Person(name){this.name = name}
Person.prototype.sayName= function(){console.log(this.name)
}

let louis = new Person('louis') // 此时的 this 指向 louis
louis.sayName() //louis

3、执行了构造函数中的代码,也就是执行了上面 Person 里的代码

4、返回新对象 如果没有另外设置 return 的值即返回了 louis,否则返回你重新设置的对象

正文完
 0