我在js中的对象
var myobj = {}
每次你在方法myObj.a()
中调用方法时我都需要
或者myObj.b()
等它将调用相同的功能,并且根本不会调用任何其他内容...
like myFn = function(){
return 1 + 1 ;
}
答案 0 :(得分:4)
好的代理是一种选择。
这是ES6,我不相信它可以被pollyfilled所以没有IE支持我很害怕。正如你所说那不是问题,那么一切都很好。
MenuService.getMenuItem(signupCtrl.user.favouritedish).then(
function(response) {
// Do something with response.data
}
).catch(error) {
singupCtrl.dishError = true;
}
基本上它是如何工作的是你为代理提供要代理的对象'和处理程序的地图。 MDN列出了所有不同的处理程序,如果你不提供处理程序,那么它将调用对象。
根据处理程序的类型,为处理程序提供了不同的东西。在我们的例子中,var obj = {};
var objProxied = new Proxy(obj, {
get: (target, key, reciever) => {
console.log(`Handler hit, looking for prop ${key}`);
return (...args) => foo(...args); // return what ever you like here
}
});
接收被调用的对象,原始get
和属性名称。
重要的是要注意你的处理程序必须返回一个值(例如,注释在示例中),如果不这样做,它将调用底层对象。这将在我们的示例中导致异常,因为我们将尝试执行未定义的方法。
行动中:
obj