是否有可能在对象的(任何)属性被访问或尝试访问时捕获?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