以下是一个比较JavaScript对象原型并求和的代码示例:
function compareAndSum(obj1, obj2) {
// 检查obj1和obj2的原型是否相同
if (Object.getPrototypeOf(obj1) === Object.getPrototypeOf(obj2)) {
// 将obj1和obj2的属性值求和
let sum = 0;
for (let key in obj1) {
if (obj1.hasOwnProperty(key) && typeof obj1[key] === 'number') {
sum += obj1[key];
}
}
for (let key in obj2) {
if (obj2.hasOwnProperty(key) && typeof obj2[key] === 'number') {
sum += obj2[key];
}
}
return sum;
} else {
return "对象原型不同";
}
}
// 创建两个对象
const obj1 = {
a: 1,
b: 2
};
const obj2 = {
c: 3,
d: 4
};
// 比较对象原型并求和
console.log(compareAndSum(obj1, obj2)); // 输出结果:10
在上面的代码中,compareAndSum
函数接受两个参数obj1和obj2。首先,我们使用Object.getPrototypeOf
函数比较obj1和obj2的原型是否相同。如果原型相同,则进入循环遍历obj1和obj2的属性,将属性值为数字的属性求和。最后返回求和结果。
如果obj1和obj2的原型不同,则返回字符串"对象原型不同"。