關於new一個對象

我的理解:web

  new一個對象的時候,是在對象內建立一個this=this,而且return這個this;app

  shou=function(name, qq){函數

    //let this=new Object();  //new的時候系統自動this

    this.name=name;spa

    //return this;  //new的時候系統自動prototype

  }code

  let ar1=new shou('blue','32423534');orm

  alert(ar1.name)  //blue對象

摘要  blog

var a=new F()

這個時候,a就是F的一個實例,注意不要跟繼承搞混淆了,這是實例化。此時new有三個做用

1.在構造函數內部聲明一個臨時對象this
2.在構造函數F中默認返回這個臨時對象this,賦給a
3.將臨時對象的_proto_指向F的prototype

用更生動的能夠看下圖

 

只要你在士兵前面使用 new 關鍵字,那麼能夠少作四件事情:

 1. 不用建立臨時對象,由於 new 會幫你作(你使用「this」就能夠訪問到臨時對象);

 2. 不用綁定原型,由於 new 會幫你作(new 爲了知道原型在哪,因此指定原型的名字爲 prototype);

 3. 不用 return 臨時對象,由於 new 會幫你作;

 4. 不要給原型想名字了,由於 new 指定名字爲 prototype。

 

var 士兵們 = [ ]  ;

for(var i=0; i<100; i++){

  士兵們.push(new 士兵(i))

}

 兵營.批量製造(士兵們)

 

更全可看:https://zhuanlan.zhihu.com/p/23987456?refer=study-fe

相關文章
相關標籤/搜索