为了账号安全,请及时绑定邮箱和手机立即绑定

可以在 Javascript 中重新定义用于访问对象属性的函数吗?

可以在 Javascript 中重新定义用于访问对象属性的函数吗?

隔江千里 2022-06-05 16:27:34
当我执行一些测试时,我需要声明一个具有多个属性的对象,通常等于一个虚拟函数/值。在 Python 中,可以通过方法定义__get__访问对象属性时调用的函数,以便可以在运行时计算该属性。Javascript 中是否存在相同的可能性或一些解决方法?我想做的是让Object xwherex[whatever_it_is]等于我定义的值。
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以使用代理来模仿__get__使用带有get陷阱的处理程序:


var handler = {

    get:: function(obj, prop) {

        // return some value here

        if (prop === "name") 

            return "Foo"

        return obj.prop

    }

}


var proxy = new Proxy(dummyObj, handler)


console.log(proxy.name) // => Foo


查看完整回答
反对 回复 2022-06-05
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

javascript 中的setter 或javascript 中的Proxygetter 可以帮助解决您的任务。



查看完整回答
反对 回复 2022-06-05
  • 2 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信