在每次调用对象时使用相同的函数

时间:2016-10-31 14:20:50

标签: javascript node.js ecmascript-6

我在js中的对象

var myobj = {} 

每次你在方法myObj.a()中调用方法时我都需要 或者myObj.b()等它将调用相同的功能,并且根本不会调用任何其他内容...

like myFn = function(){
return 1 + 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和属性名称。

重要的是要注意你的处理程序必须返回一个值(例如,注释在示例中),如果不这样做,它将调用底层对象。这将在我们的示例中导致异常,因为我们将尝试执行未定义的方法。

MDN

行动中:



obj