Я ищу что-то немного причудливое с функциями конструктора в Javascript, и я не совсем уверен, как это сделать.Динамически модифицирующие конструкторы в JavaScript?
Я хочу, чтобы иметь возможность определить функции конструктора, а затем передать их в другую функцию (а «модификатор»), как это:
function OriginalConstructor() {
// Do constructor things here
// Like defining methods and properties
}
NewConstructor = modifyConstructor(OriginalConstructor);
И в результате «NewConstructor» должно быть функционально эквивалентно следующему:
function NewConstructor(id, data) {
this.id = id;
this.data = data;
// Do stuff from the original constructor here
// i.e. the same methods and properties defined in the original constructor
}
Кто-нибудь знает, как создать функцию «modifyConstructor»?
Не уверен, что я понял, вы хотите вернуть новый конструктор с помощью тех же методов и прототипов или просто вернуть новый экземпляр переданного конструктора? – adeneo
Звучит как классическое подклассирование с вызовом super(). Или они должны использовать один и тот же прототип? – Bergi
см. Также [Можно ли переопределить метод класса JavaScript?] (Http://stackoverflow.com/a/21243884/1048572) – Bergi