參考:http://www.cnblogs.com/lcngu/p/5876273.htmlhtml
JS的基本類型,是按值傳遞的。node
對象類型按共享傳遞的(call by sharing,也叫按對象傳遞、按對象共享傳遞)。ajax
總之,基本類型是按值傳遞,而對於對象來講傳入的是對象指向的地址,也能夠認爲其是特殊的按值傳遞。若是在函數內對對象的屬性進行操做,實際就是對其指向對象的屬性進行操做。可是,若是對其總體進行操做(好比:o = 100或者o = []),其實際是新定於了對象,實參的引用地址爲新的對象的引用地址,與原來的引用沒有任何關係,因此不會對原來的對象形成改變。json
好比,ajax請求返回的json值須要被屢次賦值,並且可能有修改,有時會形成賦值錯誤。函數
解決方法:spa
先將返回的json數據轉爲字符串,再使用轉化的字符串作操做。轉化後的字符串再次賦值就爲值傳遞,不會相互影響code
$.get("xxxxxxx", function(result){ var znode = JSON.stringify(result); var lookUpNodes = $.parseJSON(znode);; var controlNodes = $.parseJSON(znode);; });