- 数据类型分为 基本类型 和 引用类型
- 基本类型是值传递
- 引用类型是通过指针指向的内存地址来比较
4. var obj1 = {
name: "Benjamin",
sex : "male"
};
var obj2 = {
name: "Benjamin",
sex : "male"
};
var obj3 = obj1;
//Outputs: true
console.log(obj1 == obj3);
//Outputs: true
console.log(obj1 === obj3);
//Outputs: false
console.log(obj2 == obj3);
//Outputs: false
console.log(obj2 === obj3);
因此,两个对象是否相等有两种需求的比较
- 两个对象的属性是否相同
- 属性对应的值
如果是第二种类型:(如下做法:)
function isObjectValueEqual(a,b){
const aProps = Object.getOwnPropertyNames(a);
const bProps = Object.getOwnPropertyNames(b);
for(var i=0;i<aProps.length;i++){
var propsName = aProps[i];
if(a[propsName] !== b[propsName]){
return false;
};
};
return true;
};
//举例
var obj1 = {
name: "Benjamin",
sex : "male"
};
var obj2 = {
name: "Benjamin",
sex : "male"
};
//Outputs: true
console.log(isObjectValueEqual(obj1, obj2));