JavaScript对象引用与赋值实例详解

前端之家收集整理的这篇文章主要介绍了JavaScript对象引用与赋值实例详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了JavaScript对象引用与赋值。分享给大家供大家参考,具体如下:

修改元素值 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);

如果真要复制对象互不影响,则要通过转换赋值或者遍历key:value来复制你中的方法属性

注意:对象的子对象也是引用,所以遍历赋值的时候要判断,子元素是否是对象,如果子元素是对象,则继续对子元素进行遍历赋值。

转换赋值方式:

输出结果:

相互没有影响

当对象引用做为函数参数传递时候,依然会相互影响,切记

,如下示例:

输出结果:

对象引用赋值后,如果将对象置空,相互间是不受影响的

,如下:

输出结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

原文链接:https://www.f2er.com/js/40687.html

猜你在找的JavaScript相关文章