2009-11-09 55 views
0

對於這個不精確的主題名稱。大JavaScript對象的最佳做法

我很多次查詢數據集,所以使用ajax請求會導致大量的http請求。

因此,我決定使用json編碼方法來存儲這個特定的數據集在我的javascript代碼中。

我的PHP代碼如下所示:(無json.parse)

echo 'var myDataset = ' . json_encode($myDataset) . ';' ; 

現在,這裏是我的問題:下列哪些方法比較好?

一)

var myDataset = { '1' : { ... } , ... }; 

console.log (myDataset['1']); 

B)

var myDataset = function(id){ return ({ ... })[id] }; 

console.log (myDataset('1')); 

是否有內存或CPU的消耗有什麼區別?

感謝

+0

這兩種選擇在做什麼,具體是什麼? – 2009-11-09 15:13:26

+0

第一種方法是使用命名數組,第二種方法是使用具有不同範圍的匿名數組。 – jantimon 2009-11-09 15:15:10

回答

4

第一種方法(a)是最快的。在某些情況下使用。語法可以更快,即,myDataset.amyDataset['a']更快,這比function(a){return myDataset[a];}快。使用功能非常少見。在(b)中你和(a)完全一樣,但是你有另一個函數調用,並且會在堆中增加一個新的閉包,這佔用了空間和時間。

+0

您不能在數字鍵上使用點語法。 myDataset.1將失敗,它需要myDataset [1]或['1']。 – JAL 2009-11-09 19:16:55

+0

你是正確的:)修正。 – Marius 2009-11-10 00:07:22

2

函數只增加了不必要的額外的開銷。如果數據只是以對象屬性的風格被訪問,那麼我會去a)。