簡體   English   中英

在構造函數中創建JavaScript原型

[英]JavaScript prototype creation in constructor

當您在構造函數中添加到對象的原型時,內存中會發生什么? 每次創建新對象時都會重新創建它嗎?

例如:

function Foo(){
  Foo.prototype.bar = function() {
    console.log("bar func called");
  }
}    
var x = new Foo();
x.bar();
var y = new Foo();
y.bar();

代碼的“性質”無關緊要,每次調用時都會執行。 這意味着,是的,每次調用new Foo() ,都會重新分配原型的功能bar

這也意味着每個Foo對象都會獲得一個新的bar方法,即使那些已經存在的對象也是如此。

每次調用該函數時,放入該函數中的所有代碼都會運行,即使該代碼分配了原型的屬性也是如此。

是的,它確實。 每次實例化Foo時都會執行創建代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM