function differ(obj1,obj2){
//1.定义一个构造函数,把要检测的两个对象作为参数传入
debugger
//首先判断传入的两个参数是否是对象
var result1=obj1 instanceof Object;
var result2=obj2 instanceof Object;
if(!result1||!result2){
return obj1 === obj2;
}
//利用es6的Object.keys(obj)判断返回的数组长度是否一样,即判断对象里面的属性个数是否相同
// /Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组
if(Object.keys(obj1).length!=Object.keys(obj2).length){
// 如果不相等则说明对象里的属性个数不同
return false;
}else{
for(var attr in obj1){
var test1=obj1[attr] instanceof Object
var test2=obj2[attr] instanceof Object
if(test1&&test2){
return differ(obj1[attr],obj2[attr])
}else if(obj1[attr] !==obj2[attr]){
console.log("两个对象不相等")
return false
}
}
console.info("两个对象相等")
return true;
}
}
var a={name:'wudi'}
var b={name:'wudi'}
differ(a,b)
这两个对象是不相等的。