请问“引用”是什么意思?它和浅拷贝有啥关系?
比如说:
var obj1={a:1,b:2};
var obj2;
obj2=obj1 这能说obj2 "引用了"obj1吗?
还是
var obj2={}
obj2.attribute=obj1 这个叫obj2"引用了"obj1?
还有一个问题是不是无论obj2=obj1,还是obj2.attribute=obj1 这两个都叫浅拷贝啊?
[解决办法]
如果将赋值可以看做拷贝的话,那么现在这种情况是浅拷贝,就是说obj2和obj1指向了同一个对象。
obj2=obj1 这能说obj2 "引用了"obj1吗?
可以
obj2.attribute=obj1 这个叫obj2"引用了"obj1?
将偶obj1对象赋给obj2的attribute属性,我感觉这样表达跟准确
[解决办法]
浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象;
浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.
浅拷贝是指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段则指复制它的一个引用到目标对象。如果改变目标对象 中引用型字段的值他将反映在原是对象中,也就是说原始对象中对应的字段也会发生变化。
引用是js面向对象的基本概念之一。它是一个指向对象实际位置的指针。实际的对象肯定不会是引用。比如字符串永远是字符串,不过多个变量能够指向同一个对象。
引用指向的只能是具体的对象,当具体对象改变的时候,引用还是引用原来的对象,而不是改变后的对象。
[解决办法]
只要是没有变成两个实体,能过地址指向,都可以叫引用
obj2引用了obj1?,详细点说obj2 的属性attribute 引用了obj1
[解决办法]