2017-09-13 33 views
0

我建立各種d3.js儀表盤頻繁指javascript_properties.js文件,其中包括性能,如:全局JavaScript屬性 - 內存使用

var all_charts = (function() { 

    return { 
    width:860, 
    height:500, 
    from_date:"", 
    to_date:"", 
    highlight_color:"#00FFFF" 
    } 

}()); 

我經常使用中的各種功能,這些特性。

我的問題是:

有沒有在我每次使用它,或者它會更有效,在每個函數的開頭聲明一個局部變量,如果屬性將是一次調用每個屬性的直接任意傷害不止一次地稱呼?

舉個例子。局部變量:

var width = all_charts.width; 

或致電

all_charts.width 

功能期間根據需要多次。

有沒有什麼明顯的區別?

+1

使您的代碼可讀性,不用擔心它的效果是不存在的,與其他邏輯的成本有關。 – Nit

回答

3

這不是關於內存使用情況,而是關於查找時間。

是,緩存屬性設置爲一個局部變量可以使其更快使用時反覆之後,隨着JavaScript引擎沒有遍歷作用域鏈到全球水平上尋找all_charts,然後查找width它。

,它除非你在同一個函數中使用這些屬性數十萬次也未必能做出明顯差異。


邊注:有沒有點在all_charts代碼的功能,你有什麼不正是這樣做,只是更間接地:

var all_charts = { 
    width:860, 
    height:500, 
    from_date:"", 
    to_date:"", 
    highlight_color:"#00FFFF" 
}; 
+0

非常感謝你們倆。 – Bmil