Js对象的引用和拷贝

在学习js过程中,对于对象的概念是必须了解清楚的,不然在做复杂编程的时候,引用对象和拷贝对象的区别,会让你整个人彻底崩溃掉。
Javascript的简单数据类型包括数字、字符串、布尔值、null和undefined值。其他所有的值都是对象。数字、字符串和布尔值“貌似”对象,因为他们拥有方法,但他们是不可变的。Javascript中的对象是可变的键控集合。在javascript中,数组、函数、正则表达式、对象本身都是对象。

对象的定义:
var a={a:1,b:2};

这样就定义了一个对象。

遍历对象的方法,需要使用for in
for(var key in a){
    console.log(key+"|"+a[key]);
}
复制对象:
var b=a;
这样,b引用对象a,两个对象的值完全绑定在一起。
拷贝对象

jq中有个方法很好:

var c=$.extend({},a);//浅层拷贝
var c=$.extend(true,{},a);//深层拷贝

这样就复制了键值和a完全相同的对象c,a、c之前没有关系。
对象的引用一旦成立,那么将使用绑定在一起,普通的赋值操作、函数参数值的改变等,都是联动改变所有在引用关系上的对象。
例如

var a={a:1,b:2};
var b=a;
b.c=3;//此时a={a:1,b:2,c:3},b={a:1,b:2,c:3}
function d(p){
  p.d=4;
}
d(a);//此时 a={a:1,b:2,c:3,d:4},b={a:1,b:2,c:3,d:4}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT飞牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值