例如,我定义一个对象obj
:
var obj = {}
Object.defineProperty(obj, "a", {
value : 37,
writable : true,
enumerable : true,
configurable : true
});
console.log(obj.a); // => 37
我想访问所有未知孩子的吸气剂相同的值,例如
obj.a.b.c.d.e
/ obj.c.d.e.f.e....
=> 37 最佳答案
无法返回这样的数字,因为如果您想无限期地访问更多嵌套键,则每个嵌套属性都必须返回一个对象-最好的办法是返回一个可以强制转换为所需字符串的对象使用代理:
const handler = {
get(_, prop) {
return prop === Symbol['toPrimitive']
? () => '37'
: objProx;
}
}
const objProx = new Proxy({}, handler);
console.log('' + objProx.a); // => '37'
console.log('' + objProx.a.b); // => '37'
console.log('' + objProx.a.b.c.d.e.foobarbaz); // => '37'
关于javascript - Object.defineProperty如何获取和设置对象中所有未知子项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54967513/