首页 > 代码库 > 对象相等与不相等
对象相等与不相等
看一段代码:
var a =function xx(){ return {xxx:"eee"} }; var c = a(); var b = a(); console.log(c == b) //false
c和b是两个单独的对象,所以不相等
等同于
1 var e = {xxx:"eee"}2 var f = {xxx:"eee"}3 console.info(e == f)
但是这种又是相等的
1 var ee = {xxx:"eee"}2 var ee1 = ee;3 var ee2 = ee;4 console.log(ee1 == ee2)
但是这样又不想等了:
console.log({xxx:"eee"} == {xxx:"eee"})
得出结论 引用类型的值 指向同一个堆内存的指针会相等,而就算两个完全相同的对象因为是两个堆内存所以不会相同:
由此得出以下结论:如下代码肯定相等:
1 var ee = {xxx:"eee"}2 var ee1 = ee;3 var ee2 = ee;4 5 ee1.cc = "4444";6 console.log(ee1 == ee2);
修改ee1时其实是通过指针修改的 ee ;
对象相等与不相等
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。