2017-02-04 4 views
0

(я немного новичок в Javascript и всей концепции прототипа/наследования, так что мои извинения, если это глупый вопрос)Может ли объект Pattern Pattern наследоваться от объекта Pattern конструктора?

В моем коде, я получил мешанину типа Раскрывая-Module-Pattern объектов, а затем я также получил объекты, которые используют конструктор-шаблон (где экземпляры обновляются).

У меня также есть блок кода (написанный в шаблоне типа конструктора), который предоставляет функциональность EventEmitter. Можно ли использовать этот код в качестве базового класса как для объектов Constructor-Pattern, так и для объектов Revealing-Module-Pattern? Попытка сделать это даже имеет смысл?

+0

Ваш вопрос довольно расплывчатый. На самом деле во многих случаях всегда можно повторно использовать код в JavaScript, но средства для этого будут зависеть от вашей конкретной ситуации. Это поможет, если вы предоставите конкретный пример того, что вы хотели бы сделать. – lleaff

ответ

1

Во-первых, только объекты типа «конструктор-шаблон» следуют традиционной форме наследования, где один класс расширяет другой, и вы делаете экземпляры объектов.

«Раскрытия-модуль-шаблон» это просто способ инкапсуляции данных и выставляя только те его части, не существует понятие экземпляров и классов когда вы используете этот шаблон.
Если вы хотите повторно использовать код из такого «простого старого объекта», вы можете использовать "prototypal inheritance", что просто означает, что ваш дочерний объект будет указывать на родительский объект каждый раз, когда его попросят указать его член.

В обоих случаях вы используете Object.create для создания объектов, у которых есть какой-либо другой объект для прототипа, проверьте examples at MDN.

Также обратите внимание, что ES2015 отсутствует и делает классический ООП проще с красивым native syntactic sugar в виде class и extends.