是否可以从其自己的处理程序对象中引用代理?
Is it possible to reference a Proxy from its own handler object?
我需要从其自己的处理程序中引用当前 Proxy
实例。我在阅读的任何文档中都没有看到这一点,我只是好奇是否有任何自然的方法可以做到这一点。
问题是,在处理程序对象内部,this
自然是指处理程序,而不是 Proxy
它是处理程序 of.
例如:
var ProxyHandler = {
get: function(object, property) {
var thisProxy = ??? // how to reference myProxy from here?
}
};
var someObj = {foo: "bar"};
var myProxy = new Proxy(someObj, ProxyHandler);
console.log(myProxy.foo);
代理 get
处理程序的签名是
function(target, property, receiver) {
因此,由于您执行了 myProxy.foo
,因此 receiver
参数将 myProxy
遵循 属性 访问上下文的标准逻辑。
处理程序的默认行为如下
let handler = {
get(target, propKey, receiver) {
return (...args) => console.log(args);
}
};
let proxy = new Proxy({}, handler);
接收者是 Proxy 类型,在我们的例子中是对象 myProxy
我需要从其自己的处理程序中引用当前 Proxy
实例。我在阅读的任何文档中都没有看到这一点,我只是好奇是否有任何自然的方法可以做到这一点。
问题是,在处理程序对象内部,this
自然是指处理程序,而不是 Proxy
它是处理程序 of.
例如:
var ProxyHandler = {
get: function(object, property) {
var thisProxy = ??? // how to reference myProxy from here?
}
};
var someObj = {foo: "bar"};
var myProxy = new Proxy(someObj, ProxyHandler);
console.log(myProxy.foo);
代理 get
处理程序的签名是
function(target, property, receiver) {
因此,由于您执行了 myProxy.foo
,因此 receiver
参数将 myProxy
遵循 属性 访问上下文的标准逻辑。
处理程序的默认行为如下
let handler = {
get(target, propKey, receiver) {
return (...args) => console.log(args);
}
};
let proxy = new Proxy({}, handler);
接收者是 Proxy 类型,在我们的例子中是对象 myProxy