尝试返回其他值时,代理仅通过get方法返回目标

时间:2019-01-28 19:54:46

标签: javascript ecmascript-6 proxy es6-proxy

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

我尝试使用String,Reflect之类的类,但没有任何积极结果

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


console.log(proxy)

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

1 个答案:

答案 0 :(得分:2)

  

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

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

请参见此处的get陷阱:

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

  

我正在尝试为用户提供字符串“ Hello”

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