我有一個全局的JSON變量,我存儲了一些參數,然後每次運行函數時,我都希望能夠修改它們,但只是在本地函數內部。爲什麼函數返回本地JSON變量的值而不是全局?
因此,每次我運行函數時,我都想在本地內部創建全局變量的全新副本。
問題是,我將全局變量複製到函數中定義的局部變量,並且對局部變量進行了更改,但是下次運行該函數時,而不是具有完整副本的全局變量,我有一個我已經修改過的東西。
謝謝! :)
var test = {"name":"me"};
function bla() {
var t=test;
t.name="you";
t.age=55;
alert(test.name); // Returns "you" that have been set locally instead of "me" that was global value.
}
bla();
通過JSON克隆一個對象將炸燬任何不可序列化的成員(如函數)。 – 2010-09-15 17:13:19
請閱讀「因爲您正在使用JSON」,請閱讀標題和此問題的正文。只要該對象用於JSON,與編寫自定義遞歸函數相比,對克隆進行序列化和反序列化可能會更快,更不容易出錯。 – MooGoo 2010-09-15 17:27:18