簡體   English   中英

Javascript:多次調用對象屬性

[英]Javascript: Calling Object Properties Multiple Times

我有一個對象:

var object = {
    string1 : 'hello',
    string2 : 'world'
}

如果我想調用該objectstring2屬性,則多次調用它會更慢:

...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.

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