Есть ли какая-либо реализация класса-наследования для JavaScript, которая работает с Closure Compiler's ADVANCED_OPTIMIZATIONS
?Внедрение класса JavaScript, который работает с компилятором Closure
Похоже, John Resig's implementation нет.
Есть ли какая-либо реализация класса-наследования для JavaScript, которая работает с Closure Compiler's ADVANCED_OPTIMIZATIONS
?Внедрение класса JavaScript, который работает с компилятором Closure
Похоже, John Resig's implementation нет.
Это один из самых простых и довольно общего approachs настроить Наследование:
function Parent() {}
function Child() {}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
и она отлично работает с закрывающим компилятором. Я не уверен, правильно ли распознан Object.create
, но посмотрите на реализацию goog.inherits
из библиотеки закрытия, которая в основном делает то же самое.
компилятор в настоящее время признает только «goog.inherits» и непосредственные задания по прототипу:
Child.prototype = new Parent();
Метафора Object.create является очевидным дополнением, но не было сделано. Для получения чего-либо еще признанного требуется либо определение нового класса условного обозначения кодировки (каким образом goog.inherits распознается во время проверки типа), либо изменение компилятора (как это может потребоваться для Object.create).
Если нужна поддержка Object.create, вы хотите подать вопрос здесь:
компилятор в настоящее время признает только «goog.inherits» и прямые поручения прототипов: – John
Я заметил что компилятор закрывается при установке прототипа через Object.create - все вызовы супер-конструктора начнут сбой. Мое обходное решение состояло в том, чтобы установить: Child ['prototype'] = Object.create (...), чтобы суперструкторы могли правильно разобрать – ansiart