Joh*_*man 6 javascript ecmascript-6
foo在 javascript 中,我可以使用以下方法检测何时设置全局变量(假设它最初未定义) Object.defineProperty:
var foo_;
Object.defineProperty(window, 'foo', {
get: function() {
return foo_;
},
set: function(newFoo) {
console.log('foo set to ' + newFoo);
foo_ = newFoo;
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方法来做到这一点?一个缺点是我不能Object.defineProperty两次访问同一处房产。仅仅为了检测它的定义时间而覆盖整个属性似乎有点矫枉过正。
我可以以某种方式使用代理吗?我觉得我必须创建一个针对窗口对象的代理......这样有效吗?
Red*_*edu -1
你可能也喜欢
var _bar;
window.__defineGetter__("bar", function(){return this._bar});
window.__defineSetter__("bar", function(v){console.log("bar set to:",v); this._bar = v;});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |