«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Когда лучше выбирать Object.create вместо new для наследования JavaScript?

Когда лучше выбирать Object.create вместо new для наследования JavaScript?

Опубликовано 19 ноября 2024 г.
Просматривать:156

When to Choose Object.create Over new for JavaScript Inheritance?

Наследование JavaScript: Object.create против new

Концепция наследования в JavaScript может сбивать с толку, поскольку существуют различные подходы к достижению это. Целью этой статьи является разъяснение наиболее распространенных методов и предоставление решения для вашего конкретного сценария.

Понимание Object.create и new

Object.create — это метод, который создает новый объект путем наследования от существующего объекта. Это полезно, если вы хотите создать базовый объект, а затем расширить его дополнительными свойствами и методами. Синтаксис Object.create:

Object.create(prototype[, propertiesObject])

С другой стороны, новое ключевое слово используется для создания нового экземпляра объекта и вызова его функция-конструктор. Синтаксис new следующий:

new ConstructorFunction([arguments])

Выбор правильного метода наследования

Выбор между Object.create и новый зависит от ваших конкретных требований. Object.create идеально подходит для создания базовых объектов, от которых вы хотите наследовать, не вызывая их конструкторы. Например:

const Model = {
    // Base object properties and methods...
};

const RestModel = Object.create(Model);

Однако если вы хотите вызвать функцию-конструктор базового объекта для наследующего объекта, вам следует использовать new. Например:

function Model() {
    // Base object constructor...
}

function RestModel() {
    Model.call(this);
    // Additional properties and methods...
}

Решение для вашего сценария

В вашем случае вы хотите наследовать RestModel от базового объекта Model. Чтобы добиться этого с помощью Object.create, вы должны сделать следующее:

RestModel.prototype = Object.create(Model.prototype);

Это создаст новый прототип RestModel, который наследуется от Прототип модели.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3