关于JavaScript中变量的相互引用

本文探讨了JavaScript中变量相互引用的现象及其原因,并通过实例演示了如何影响数组等对象类型的值。此外,还讨论了DOM操作中节点转移的问题,揭示了在进行节点插入时,实际操作的是节点本身而非其克隆。

变量相互引用的原因是:由于某些类型的变量是按地址存储的而导致的两个或多的参数的值互相影响:

测试如下:

数组类型测试Object类型测试实例化函数测试函数参数按地址传递测试
var a=b=[1,2]; a.push(3); alert(a.length+' : '+b.length);

 

关于对节点对象操作产生的影响:

由于是函数是按值传递,所以在插入节点时,引用的是节点本身,而不是它的一个克隆,所以节点被转移了

如:

无标题文档

div1
div2


最后一个是关于节点的移除的,本来以为用innerHTML=""来移除元素内容的话,在IE中会把创建的节点从内存中彻底消除,事实并非如此,而是产生了很奇怪的现象:

如:

无标题文档

来回重复点击add_div和inner试试,会发现奇怪的现象。点击alert,又会发现创建的div没从内存清除。
用removeChild方法会很正常的表现


转载于:https://www.cnblogs.com/lyz-pro/archive/2010/05/09/1731355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值