[英]Javascript: Calling Object Properties Multiple Times
我有一個對象:
var object = {
string1 : 'hello',
string2 : 'world'
}
如果我想調用該object
的string2
屬性,則多次調用它會更慢:
...object.string2...
...object.string2...
或者為它創建一個包含參數值的引用會更快:
var string2 = object.string2;
...string2...
...string2...
我認為第二個可能更快的原因,因為我現在認為第一個總是掃描整個對象以獲取值。
你是對的 - 第二個更快,因為JavaScript不需要每次都執行string2的查找。 這種變化更加深刻:
(do stuff with foo.bar.baz.qux)
與
var property = foo.bar.baz.qux;
(do stuff with property)
在該示例中,必須掃描foo為bar。 然后必須掃描bar為baz。 等等。
在你的例子中,除非你在使用string2做很多工作,否則增益將是最小的,但你說它更快是正確的。
在你的情況下這沒關系。 但對於具有大型原型塊的大對象 - 你是對的。 但是你可能在速度方面獲勝但功能卻松散,因為var a = obje.property按值處理 - 而不是通過引用,如果obj.property將動態更改,則變量a將具有obj.property的舊值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.