2010-06-18 44 views

回答

7

的問題是,原始值StringNumberBooleanundefinednull),由值的工作,他們都是非可變的。

如果使用對象的數組元素就可以得到所需的行爲:

var a = [{value: 1}, {value:2}, {value:3}, {num:4}]; 
var b = [a[1], a[2], a[3]]; 

alert(a[1].value); // 2 
b[0].value = "foo"; 
alert(a[1].value); // "foo" 
+0

有趣的想法+1 – 2010-06-18 21:48:54

+0

尼斯把戲...希望這本書能解決我的問題。任何想法如何影響整體表現? – markovuksanovic 2010-06-18 22:31:50

+0

@markovuksanovic,我不認爲你會有任何性能問題,'b'只是一個*引用數組*,每個數組元素的值只是指向原始對象的引用。只是要小心不要創建循環引用,這會導致對象永遠不會被垃圾回收。 @Daniel,謝謝! – CMS 2010-06-18 22:37:31

相關問題