JavaScript对象引用与赋值实例详解
网络编程 2021-07-04 19:20www.168986.cn编程入门
这篇文章主要介绍了JavaScript对象引用与赋值,结合实例形式分析了JavaScript对象引用及赋值的操作技巧与相关注意事项,需要的朋友可以参考下
本文实例讲述了JavaScript对象引用与赋值。分享给大家供大家参考,具体如下
<script type="text/javascript"> //例子一: 引用 var myArrayRef = new Array(0,1,2); //创建数组对象 var mySeconArrayRef = myArrayRef; // 对象复制. myArrayRef[0] = 100; // 修改元素值 alert(mySeconArrayRef[0]); / 输出 100; 学过其它语言的都应该知道这里应该输出的是0 为什么输出的是100呢? 上面程序通过把myArrayRef对象复制给了mySeconArrayRef这时就存在了2个独立的 但最初值是相同的对象 因为是独立的为什么修改myArrayRef会对别一个对象有影响呢?大家都知道只有当他们引用的是同一个对象时这时修改一个才会 对别一个产生影响.在javascript语言中创建的对象myArrayRef值中其时保存的是对象的引用(也就是一个地址). 也就是 我用 new Array生成的保存在内存中而new Array把它所在的地方告诉了myArrayRef,myArrayRef又把这地址告诉了mySeconArrayRef 他们两个都指向的是new Array生成对象的地址而不是把对象保存在myArrayRef中,所以通过其中的一个去修改值时其时是修改他们同指象的那对象. / alert(mySeconArrayRef[0] ); //例子二: 赋值 var myVa = 'ABC'; //把ABC的值 赋予了myVa var myVb = myVa; // myVa 赋值给 myVb myVa = 'DEF'; //修改myVa / 输出的是:ABC. 因为是把值保存在了变量了 而不是保存的是引用地址,所以他们两个是相对独立的整体. / alert(myVb); </script>
如果真要复制对象互不影响,则要通过转换赋值或者遍历key:value来复制你中的方法和属性。
注意对象的子对象也是引用,所以遍历赋值的时候要判断,子元素是否是对象,如果子元素是对象,则继续对子元素进行遍历赋值。
转换赋值方式
var data = {a:1,b:2,c:3,d:[0,1,2,3]}; var str = JSON.stringify(data); var data1 = $.parseJSON(str); //$为jQuery对象需要引入jQuery包 data1["e"] = 4; data1["d"][0] = 11; console.log(data); console.log(data1);
输出结果
{a: 1, b: 2, c: 3, d: [0,1,2,3]} {a: 1, b: 2, c: 3, d: [11,1,2,3], e: 4}
相互没有影响
当对象引用做为函数参数传递时候,依然会相互影响,切记,如下示例
var data = {a:1,b:2,c:3,d:{q:4,w:5,e:6}}; var data1 = data; function con(data2){ data2["r"] = 5; console.log(JSON.stringify(data2)); } con(data1); console.log(JSON.stringify(data));
输出结果
{"a":1,"b":2,"c":3,"d":{"q":4,"w":5,"e":6},"r":5} {"a":1,"b":2,"c":3,"d":{"q":4,"w":5,"e":6},"r":5}
对象引用赋值后,如果将对象置空,相互间是不受影响的,如下
var arr = {"a":"1","b":"2"}; var arr1 = arr; arr = {}; arr["a"] = 2; console.log(arr1); console.log(arr);
输出结果
{"a":"1","b":"2"},{"a":2}
更多关于JavaScript相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程