オブジェクトに設定されているすべての関数を上書きするために、 Chrome の実験的なObject.observe()を使用したいと考えています。
var obj = {};
Object.observe(obj, function (changes) {
changes.forEach(function (data) {
if ((data.type == "new" || data.type == "updated") &&
typeof data.object[data.name] == "function" &&
typeof data.object[data.name].isWrapper == "undefined") {
data.object[data.name] = function () {
};
data.object[data.name].isWrapper = true;
}
});
});
obj.helloWorld = function () {
console.log("helloWorld() was called");
};
obj.helloWorld();
残念ながら、コンソールにはまだ「helloWorld() が呼び出されました」と表示されます。オブジェクトオブザーバーで現在変更されている値を実際に上書きすることは可能ですか?
これは実験にすぎないので (本番コードはありません!)、どんな種類の解決策も歓迎します。