面试题答案
一键面试在JavaScript中可以通过以下方式模拟二元操作符 +
的重载,实现两个自定义对象相加返回属性合并的新对象:
- 定义自定义对象并为其添加一个用于合并的方法
function MyObject() {
this.data = {};
}
MyObject.prototype.add = function(other) {
const newObj = new MyObject();
newObj.data = {...this.data, ...other.data };
return newObj;
};
- 使用上述定义的方法来模拟
+
操作符的重载
const obj1 = new MyObject();
obj1.data.key1 = 'value1';
const obj2 = new MyObject();
obj2.data.key2 = 'value2';
const result = obj1.add(obj2);
console.log(result.data);
通过上述代码,我们定义了一个 MyObject
类,并为其添加了 add
方法来模拟 +
操作符的功能,即合并两个对象的数据属性并返回一个新对象。虽然JavaScript没有原生的操作符重载机制,但通过这种方式可以达到类似的效果。