js 值传递,引用传递
2024-10-21 15:28:10
参考:http://www.cnblogs.com/lcngu/p/5876273.html
JS的基本类型,是按值传递的。
对象类型按共享传递的(call by sharing,也叫按对象传递、按对象共享传递)。
总之,基本类型是按值传递,而对于对象来说传入的是对象指向的地址,也可以认为其是特殊的按值传递。如果在函数内对对象的属性进行操作,实际就是对其指向对象的属性进行操作。但是,如果对其整体进行操作(比如:o = 100或者o = []),其实际是新定于了对象,实参的引用地址为新的对象的引用地址,与原来的引用没有任何关系,所以不会对原来的对象造成改变。
比如,ajax请求返回的json值需要被多次赋值,而且可能有修改,有时会造成赋值错误。
解决方法:
先将返回的json数据转为字符串,再使用转化的字符串做操作。转化后的字符串再次赋值就为值传递,不会相互影响
$.get("xxxxxxx", function(result){
var znode = JSON.stringify(result);
var lookUpNodes = $.parseJSON(znode);;
var controlNodes = $.parseJSON(znode);;
});
最新文章
- alert效果
- python pip install mysql-connector-python
- BZOJ4610——[Wf2016]Ceiling Functi
- `cocos2dx非完整` 添加xxtea加密模块
- 深入GetMessage和PeekMessage
- 对于 Javascript 闭包理解
- 【转】深圳FAE,想拿高薪还缺什么?
- IP地址基础和子网规划之其一
- 【十分不错】【离线+树状数组】【TOJ4105】【Lines Counting】
- 让Flash支持Stage3D
- Flarum轻量级论坛的安装
- spring-cloud-Zuul学习(一)【基础篇】--入门案例【重新定义spring cloud实践】
- hadoop_随笔二_参数
- python 利用split读取文本文件中每一行的数字并保存至相应文件夹
- Lozad.js 简单使用
- CRS添加、删除节点
- OpenShift-OKD3.10基础环境部署
- EntityFramework 数据校验异常处理
- 如何利用RMAN Debug和10046 Trace来诊断RMAN问题?
- linux用户操作