var obj = { a:1, b:"dfsa", c:{ d:false }, }; var wrapObj = { objj:obj, foo:function () { console.log("balabla"); } }; var proxy = new Proxy(wrapObj,{ set(target, p, value, receiver) { target.foo(); return Reflect.set(target, p, value, receiver); } }); // wrapObj.objj.a = 3; // proxy.a = 5; proxy.a = 5;