js 值传递,引用传递

参考: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);;
});
相关文章
相关标签/搜索