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

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

一、建立了一个新对象。(不知道可不能够解释为从堆内存里开辟了一块内存ui

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

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

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

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

四、返回新对象 若是没有另外设置return的值即返回了louis,不然返回你从新设置的对象code

相关文章
相关标签/搜索