2013-03-22 2 views

ответ

0

Это один из самых простых и довольно общего approachs настроить Наследование:

function Parent() {} 

function Child() {} 

Child.prototype = Object.create(Parent.prototype); 
Child.prototype.constructor = Child; 

и она отлично работает с закрывающим компилятором. Я не уверен, правильно ли распознан Object.create, но посмотрите на реализацию goog.inherits из библиотеки закрытия, которая в основном делает то же самое.

+0

компилятор в настоящее время признает только «goog.inherits» и прямые поручения прототипов: – John

+0

Я заметил что компилятор закрывается при установке прототипа через Object.create - все вызовы супер-конструктора начнут сбой. Мое обходное решение состояло в том, чтобы установить: Child ['prototype'] = Object.create (...), чтобы суперструкторы могли правильно разобрать – ansiart

0

компилятор в настоящее время признает только «goog.inherits» и непосредственные задания по прототипу:

Child.prototype = new Parent(); 

Метафора Object.create является очевидным дополнением, но не было сделано. Для получения чего-либо еще признанного требуется либо определение нового класса условного обозначения кодировки (каким образом goog.inherits распознается во время проверки типа), либо изменение компилятора (как это может потребоваться для Object.create).

Если нужна поддержка Object.create, вы хотите подать вопрос здесь:

https://code.google.com/p/closure-compiler/issues/list

Смежные вопросы