是否有可能在對象的(任何)屬性被訪問或嘗試訪問時捕獲?Javascript - 捕獲對象屬性
例子:
我已創建自定義對象Foo
var Foo = (function(){
var self = {};
//... set a few properties
return self;
})();
再有就是對Foo
一些動作 - 有人試圖訪問屬性bar
Foo.bar
有沒有辦法(原型,也許)來捕捉這個? bar
可能未定義在Foo
上。我可以充分捕獲任何嘗試訪問未定義的屬性。
例如,如果bar
上Foo
不定,所以Foo.bar
嘗試,是這樣的:
Foo.prototype.undefined = function(){
var name = this.name; //name of property they attempted to access (bar)
Foo[name] = function(){
//...do something
};
return Foo[name];
}
但功能不同,我的例子。
概念
Foo.* = function(){
}
背景
如果我有一個自定義的功能,我可以聽每到這個函數被調用時(見下文)。只是想知道是否有可能通過財產訪問。
Foo = function(){};
Foo.prototype.call = function(thisArg){
console.log(this, thisArg);
return this;
}
除非你爲屬性創建getter和setters並且「隱藏」真實屬性 – megawac
@megawac你可以發佈一個簡短的例子作爲答案嗎?我覺得我不需要太多,只是朝着正確的方向前進。 –
很確定它不能完成 – SpliFF