【发布时间】:2018-04-17 18:06:06
【问题描述】:
我使用代理get 方法很好。然后我尝试在一个函数上使用它并很快意识到我需要使用apply 方法。这个简单的例子不起作用。它从不进入 apply。
Node 看起来支持应用 https://node.green/#ES2015-built-ins-Proxy--apply--handler。不知道我做错了什么。
var Foo = {
runme: function() {
return 1;
}
};
var Magic = {
Foo: Foo
};
Magic.Foo = new Proxy(Object.assign({}, Magic.Foo), {
apply: function(target, thisArg, argumentsList) {
// never gets in here
console.log('Proxying function call');
console.log(target);
return 2;
}
});
console.log(Foo.runme()); // outputs 1
console.log(Magic.Foo.runme()); // outputs 1
我直接尝试了Magic.foo 上的代理和通过Object.assign 来查看它是否需要成为自己的对象。都没有用。
【问题讨论】:
-
是的,您应该使用
get陷阱来捕获Magic.Foo.runme访问。请向我们展示您的尝试并解释它是如何失败的。
标签: node.js ecmascript-6 es6-proxy