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

我正在尝试为任何给定对象创建一个通用的 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 1

console.log(obj.d) // should print "unknown attribute d"

我怎样才能在 JavaScript 中完成这个任务?


慕无忌1623718
浏览 81回答 1
1回答

慕妹3242003

您可以使用一个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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript