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: {}
  }
});

这显然是行不通的,但是希望它可以描绘出我想要的东西。

最佳答案

defineProperties只能传递要向其添加属性的现有对象,并且只能直接在该对象上定义属性。没有办法提前定义父对象,以便在嵌套属性上调用defineProperties:

const object1 = {nested: {}};

Object.defineProperties(object1.nested, {
  property1: {
    value: 42,
    writable: true,
    enumerable: true
  },
  property2: {
    enumerable: true
  }
});
console.log(object1);

关于javascript - 嵌套的Object.defineProperties,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55663088/

10-08 21:40