【问题标题】:Proxy only return target through get method when trying to return a different value代理仅在尝试返回不同值时通过 get 方法返回目标
【发布时间】:2019-01-28 19:54:45
【问题描述】:

我试图在每次通过 get 方法调用代理时给用户字符串“Hello”。相反,我得到一个空对象,这是我的目标。

我尝试过使用 String、Reflect 等类,但没有积极的结果

let proxy = new Proxy({},{
    get: function ()
    {
         return "Hello"
    }
})


console.log(proxy)

预期:“你好”
结果:{}

【问题讨论】:

    标签: javascript ecmascript-6 proxy es6-proxy


    【解决方案1】:

    每次通过get方法调用代理。

    这不是get 陷阱的用途。该方法将处理属性访问,而不是代理本身的访问。您的(代理)对象没有任何属性,无法访问它们,因此您看到的只是空对象。

    在此处查看get 的陷阱:

    const proxy = new Proxy({},{
        get: function () {
             return "Hello"
        }
    })
    console.log(proxy.someProperty, proxy.really, proxy.anything)
    console.log(proxy)

    我试图只给用户字符串“Hello”

    这是不可能的。代理始终是一个对象。它不能伪装成原始字符串。

    【讨论】:

    猜你喜欢
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多