Chciałbym skonfigurować Proxy
, który ostrzega mnie, gdy nowa właściwość jest zdefiniowana na obiekcie window
. (Właściwie chciałbym złapać wszystkie deklaracje zmiennych globalnych)Serwer proxy w oknie
let handler = {
defineProperty(target, key, descriptor) {
console.log('hey', key);
return false;
}
};
window = new Proxy(window, handler);
window.foo = 'bar';
// nothing happens
Powyższy kod działa dla dowolnego obiektu, ale okna:
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"
Czy istnieje jakiś sposób, aby założyć Proxy
na window
obiekt, a jeśli nie jest to możliwe, czy istnieje jakieś podchwytliwe rozwiązanie dla osiągnięcia tego samego celu?
Nie, ponieważ nie można zastąpić okno z prokurentem. – Bergi
Twój kod powinien logować się tylko dla 'proxy.foo = 'bar'', a nie dla' target.foo =' bar''. Czy to, co wysłałeś, działa naprawdę? – Bergi
możliwy duplikat [Jak mogę wykryć, kiedy zmienna globalna jest ustawiona w javascript?] (Https://stackoverflow.com/q/38759116/1048572) – Bergi