比如一个对象:obj:{ a : 1, b : { b1 : 2, b2 : 3 }} Object.keys(obj).forEach(function(key){ Object.defineProperty(obj, key, { set : function(newVal) { //...doSomething } }) })我试了一下,如果是使用obj.b.b1 = 4这样的方式赋值,是不会调用par的set的,怎么才能在这种赋值方式下,调用obj身上的set?
1 回答

慕森卡
TA贡献1806条经验 获得超8个赞
var obj={
a : 1,
b : {
b1 : 2,
b2 : 3
}
}
function aaa(obj){
Object.keys(obj).forEach(function(key){
if(typeof obj[key]=='object'){
return aaa(obj[key]);
}
Object.defineProperty(obj, key, {
set : function(newVal) {
console.log(newVal)
}
})
})
}
aaa(obj)
obj.b.b2=3;
添加回答
举报
0/150
提交
取消