javascript - 是否可以从其自己的处理程序对象中引用代理?

标签 javascript ecmascript-6 es6-proxy

我需要从它自己的处理程序中引用当前的 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);

最佳答案

Proxy get 处理程序的签名是

function(target, property, receiver) {

因此,由于您执行了 myProxy.foo,因此 receiver 参数将是 myProxy,遵循属性访问上下文的标准逻辑。

关于javascript - 是否可以从其自己的处理程序对象中引用代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008306/

相关文章:

函数 apply trap 的 javascript 代理无法访问接收者代理

javascript - JavaScript 中的自定义类数组 getter

javascript - 如何使用 javascript 选择部分标签内的所有 div?

javascript - 如何在 jQuery-Validation-Engine 中提交表单时停止页面刷新

javascript - 用于手中测量的正则表达式

javascript - JS - 比较 2 个对象数组

jquery - 我怎么能在 jQuery 中做这些事情?

返回未定义而不是数字的 Javascript 函数

javascript - jquery 选择器/checked 属性在 IE7 中不更新

javascript - 区分代理获取处理程序中的直接访问和内部访问