MDN暗示使用.setPrototypeOf()
會對您代碼的未來性能產生不良影響。setPrototypeOf對新對象的性能影響是什麼?
我還讀了一些關於爲什麼改變對象的[[Prototype]]會降低性能的問題。但沒有一個答案能夠真正解釋背景中發生了什麼。所以我想知道這是否也適用於新的對象。
特別是我真的很喜歡做這樣的事情:
var MyPrototype = {
method1 : function(){...},
method2 : function(){...},
...
};
var newObject = Object.setPrototypeOf({
property : 1,
property2 : 'text'
}, MyPrototype);
可惜你不能與Object.create
做到這一點,因爲它不接受一個普通的對象文本。
我使用setPrototypeOf
是否也降低了執行JS引擎的性能?
var newObject = Object.create(MyPrototype,{「property1」:{value:1},「property2」:{value:'text'}}); – Data
我知道,但我認爲Object.create()屬性對象對於大多數情況來說太重了。我寧願只寫通常的對象文字。如果沒有帶'value'屬性的附加子對象,可以避免很多複雜性。 – Jovan
所以你很熟悉[爲什麼要改變性能不好的對象的* \ [[[prototype \] \] *](http://stackoverflow.com/q/23807805/1048572)? – Bergi