function Animal(name){ this.name=name; this.hobby = function(){ console.log(this.name+"爱抓老鼠"); } } var cat =new Animal(); var dog =new Animal(); console.log(cat==dog) //false 这里是false var Animal = { name : "aaa" } var a = Animal; var b = Animal; b.age= 21; console.log(a==b) //true 这里是true这是为什么?能详细解释一下对象在赋给一个变量的时候内部的工作原理么
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
第一个false是因为 cat和dog是Animal的两个不同实例对象,各自传入的name属性值都不一样,这里的属性值都是在各自的实例对象上的,是两个不一样的对象,所以是false。
第二个ture是因为你的Animal是一个对象,var a = Animal; var b = Animal;
都是引用赋值,a和b都指向了Animal的内存地址,所以a和b指向的是同一个对象,所以是ture,你给b.age=21
其实就是Animal.age=21
,同样a.age
这时候也是21,因为他们都指向同一个地址。
添加回答
举报
0/150
提交
取消