Object.defineProperties вложенный - PullRequest
       6

Object.defineProperties вложенный

3 голосов
/ 13 апреля 2019

Взяв пример из 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: {}
  }
});

Это, очевидно, не работает, но, надеюсь, изображает то, что я хочу.

1 Ответ

3 голосов
/ 13 апреля 2019

defineProperties может быть передан только существующий объект , в который вы хотите добавить свойства, и он будет определять свойства непосредственно для этого объекта.Нет способа заранее определить родительский объект, чтобы вызвать defineProperties для вложенного свойства:

const object1 = {nested: {}};

Object.defineProperties(object1.nested, {
  property1: {
    value: 42,
    writable: true,
    enumerable: true
  },
  property2: {
    enumerable: true
  }
});
console.log(object1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...