实现 proxy:让修改 a 的属性时同步更新 b
这是「对象代理 / 观察」的一道经典题:希望对
a设置某个属性时,该属性会同步写入b。
function proxy(a, b) {
//TODO
}
var Animal = {};
var Cat = {
name: 'Hoe'
};
proxy(Animal, Cat);
Animal.name = 'Tom';
console.log(Cat.name); //Tom
function proxy(a, b) {
//TODO
Object.defineProperty(a, "name", {
set (newValue) {
b.name = newValue;
}
})
}
var Animal = {};
var Cat = {
name: 'Hoe'
};
proxy(Animal, Cat);
Animal.name = 'Tom';
console.log(Cat.name); //Tom
解答
补充:用
Object.defineProperty在a上拦截name的赋值操作,把值同步写入b。



