我想設置一個Proxy
,它在window
對象上定義一個新屬性時會發出警告。 (其實我想抓住所有的全局變量聲明)代理窗口
let handler = {
defineProperty(target, key, descriptor) {
console.log('hey', key);
return false;
}
};
window = new Proxy(window, handler);
window.foo = 'bar';
// nothing happens
上面的代碼適用於任何對象,但窗口:
let handler = {
defineProperty(target, key, descriptor) {
console.log('hey', key);
return false;
}
};
let target = {};
target = new Proxy(target, handler);
target.foo = 'bar';
// console: "hey bar"
有什麼辦法來建立一個Proxy
上window
對象,如果不可能,是否有任何棘手的解決方案來實現相同的目標?
不行,因爲你不能使用你的代理替換窗口。 – Bergi
您的代碼只應記錄'proxy.foo ='bar'',而不是'target.foo ='bar''。你發佈的內容是否真的有用? – Bergi
可能的重複[如何檢測當一個全局變量設置爲JavaScript?](https://stackoverflow.com/q/38759116/1048572) – Bergi