参考: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);; });