以mozilla中的示例为例,这里是Object.defineProperties
const object1 = {};
Object.defineProperties(object1, {
property1: {
value: 42,
writable: true
},
property2: {}
});
如果我想做一个嵌套的东西,例如
const object1 = {};
Object.defineProperties(object1, {
nested: {
property1: {
value: 42,
writable: true
},
property2: {}
}
});
这显然行不通,但希望它能描绘出我想要的内容。
答案 0 :(得分:3)
defineProperties
只能传递要向其添加属性的现有对象,并且只会在该对象上直接 定义属性。为了提前在嵌套属性上调用defineProperties
,没有办法提前定义父对象:
const object1 = {nested: {}};
Object.defineProperties(object1.nested, {
property1: {
value: 42,
writable: true,
enumerable: true
},
property2: {
enumerable: true
}
});
console.log(object1);