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

我如何为js中的对象创建一个通用的case访问器?

我如何为js中的对象创建一个通用的case访问器?

慕无忌1623718 2023-09-28 15:44:00
我正在尝试为任何给定对象创建一个通用的 getter/setter 方法。例如:var obj = {   a: 1,   b: "dog",   c: false}Object.defineProperty(obj, 'general_case', {   get: function(attr) { return "unknown attribute "+attr }})console.log(obj.a) // should print 1console.log(obj.d) // should print "unknown attribute d"我怎样才能在 JavaScript 中完成这个任务?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您可以使用一个Proxy.

var obj = new Proxy({

   a: 1,

   b: "dog",

   c: false

}, {

  get(target, prop, receiver) {

    return prop in target ? target[prop] : "unknown attribute " + prop;

  }

});

console.log(obj.a);

console.log(obj.d);



查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

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