Tôi muốn thiết lập một số Proxy
cảnh báo tôi khi một thuộc tính mới được xác định trên đối tượng window
. (Trên thực tế tôi muốn nắm bắt tất cả các khai báo biến toàn cầu)Proxy trên cửa sổ
let handler = {
defineProperty(target, key, descriptor) {
console.log('hey', key);
return false;
}
};
window = new Proxy(window, handler);
window.foo = 'bar';
// nothing happens
Đoạn mã trên làm việc cho bất kỳ đối tượng nhưng cửa sổ:
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"
Có cách nào để thiết lập một Proxy
trên window
đối tượng và nếu không thể, có giải pháp khôn lanh nào để đạt được cùng một mục tiêu không?
Không, vì bạn không thể thay thế cửa sổ với proxy của bạn. – Bergi
Mã của bạn chỉ nên đăng nhập vào 'proxy.foo = 'bar'', không phải cho' target.foo =' bar''. Những gì bạn đăng thực sự có hiệu quả không? – Bergi
có thể trùng lặp của [Làm thế nào tôi có thể phát hiện khi một biến toàn cầu được thiết lập trong javascript?] (Https://stackoverflow.com/q/38759116/1048572) – Bergi