javascript复制变量值时,基本类型值和引用类型值异同
来源:互联网 发布:苏州网络推广 编辑:程序博客网 时间:2024/06/04 20:51
在从一个变量向另一个变量复制基本类型值和引用类型值时,也存在不同。如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。来看一个例子:
var num1 = 5;var num2 = num1;
在此,num1 中保存的值是 5。当使用 num1 的值来初始化 num2 时,num2 中也保存了值 5。但 num2中的 5 与 num1 中的 5 是完全独立的,该值只是 num1 中 5 的一个副本。此后,这两个变量可以参与任何操作而不会相互影响。图 4-1 形象地展示了复制基本类型值的过程。
复制前的变量对象复制后的变量对象num1 5(Number 类型)num2 5(Number 类型)num1 5(Number 类型)图灵社区会员 StinkBC(StinkBC@gmail.com) 专享 尊重版权70 第 4 章 变量、作用域和内存问题当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用同一个对象。因此,改变其中一个变量,就会影响另一个变量,如下面的例子所示:
var obj1 = new Object();var obj2 = obj1;obj1.name = "Nicholas";alert(obj2.name); //"Nicholas"
首先,变量 obj1 保存了一个对象的新实例。然后,这个值被复制到了 obj2 中;换句话说,obj1和 obj2 都指向同一个对象。这样,当为 obj1 添加 name 属性后,可以通过 obj2 来访问这个属性,因为这两个变量引用的都是同一个对象。图 4-2 展示了保存在变量对象中的变量和保存在堆中的对象之间的这种关系。
阅读全文
0 0
- javascript复制变量值时,基本类型值和引用类型值异同
- javascript变量值的类型和传递值的类型
- Javascript 中的引用类型和基本类型(值类型)
- Javascript变量值的类型
- javascript 中的引用类型和值类型,复制与拷贝
- JavaScript中的基本类型和引用类型的复制使用
- javascript中基本类型值和引用类型值
- JavaScript中的基本类型值和引用类型值区别
- JavaScript基本类型和引用类型的值
- 基本类型值和引用类型值
- 基本类型和引用类型的值
- javascript的基本类型和引用类型
- Javascript中的基本类型和引用类型
- JavaScript基本类型和引用类型
- JavaScript中的基本类型和引用类型
- javascript基本类型和引用类型浅析
- JavaScript的基本类型和引用类型
- JavaScript基本类型和引用类型
- Oracle 静态SQL引起性能问题
- 剑指offer-链表中环的入口点
- 高桥和低桥(二分函数)
- jquery.Ajax soap方式调用webservice
- STS(Spring Tool Suite)使用前准备
- javascript复制变量值时,基本类型值和引用类型值异同
- C++析构函数为什么要为虚函数
- 身份证对应省份
- Sql server 忘记登录密码重置
- 降维与度量学习
- 用JS在字符串中获取有用的数据
- 堆
- websocket介绍 【转载自知乎Ovear】
- [Err] [Dtf] 2013