对象的比较

来源:1-3 [JavaScript]隐式转换

HoSalt

2015-12-23 17:00

对象用引用去比较而不是用值中“引用”是什么意思?

写回答 关注

2回答

  • Rhinel
    2015-12-23 17:48:42
    已采纳

    对象比较是指该命名下,他们对内存中存储数据的比较;

    举个例子吧,直接声明一个对象和构造一个对象,可能值是一样的,但是内存中的数据肯定是不同的,原型也不同;因此是不同的。

    两个声明对象比较的话,对内存中的数据也是两套,比较也是不同的。

    你把这个比较理解为“是否同一个”而不是“是否相同”

    HoSalt

    非常感谢!

    2015-12-30 15:59:54

    共 1 条回复 >

  • zhangcl
    2016-06-15 23:24:23

    创建对象的时候,会先开辟一个内存空间,然后用一个变量指向这个内存空间,实际上这个变量的值是这个内存空间的引用,可以理解成一个地址,比如说:var a = {}; b = a; 那么a 和 b 引用的是同一个地址,因为{}的内存空间是同一个,所以你对a或者b进行数据修改,同时会影响两个的值,因为你实际上修改的是{}的值,本体都变了,引用当然会变,现在知道你问的引用时什么意思了吗,引用就是这个内存的地址

    再说个具体的,比如说:成都市成华区双林路1号,这个地址是唯一的,你用无数个变量去接收这个地址,其实他就是同一个东西,当你修改其中一个变量,实际就是修改了这个唯一的东西,其他的变量值也就变了。

    引申一下,所以为了避免这种情况,会用到克隆方法,至于怎么用,可以问度娘

    chyco

    var a = {x:1};b=a;a={x:2}; 后面修改a会对b造成影响?

    2020-04-25 10:21:35

    共 2 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281102 学习 · 1020 问题

查看课程

相似问题