Почему это Object.assign (), а не this.assign () (для объектов)? - PullRequest
2 голосов
/ 04 апреля 2019

Я работаю над проектом JavaScript, и мне было просто интересно, почему экземпляр объекта не наследует assign() и другие методы, вместо того, чтобы вызывать метод суперкласса (суперобъект?) Object.

Почему это Object.assign (), а не this.assign () (для объектов)?

1 Ответ

0 голосов
/ 04 апреля 2019

Из-за того, как наследование работает в javacript. Цитата из

https://codeburst.io/javascript-for-beginners-the-new-operator-cee35beb669e

Когда вы используете новый, происходят четыре вещи:

  1. Создает новый пустой объект.
  2. Это связывает это с нашим недавно созданным объект.
  3. Добавляет свойство в наш недавно созданный объект с именем « proto » указывает на прототип функции конструктора объект.
  4. Добавляет возврат в конец функции, так что Созданный объект возвращается из функции.

Таким образом, метод суперобъекта не копируется в новый объект. Они доступны через только что созданный прототип объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...