Можно ли зафиксировать, когда к какому-либо (объекту) объекту обращается доступ или к нему обращаются?
Пример:
Я создал пользовательский объект Foo
var Foo = (function(){
var self = {};
//... set a few properties
return self;
})();
Затем есть какое-то действие против Foo
- кто-то пытается получить доступ к свойству bar
Foo.bar
Есть ли способ (прототип, возможно), чтобы зафиксировать это? bar
может быть undefined на Foo
. Мне было бы достаточно захватить любой попытку доступа к свойствам undefined.
Например, если bar
- undefined на 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;
}