/ / Implementacja klasy JavaScript współpracującej z kompilatorem zamknięcia - javascript, oop, class, google-closure-compiler

Implementacja klasy JavaScript współpracującej z kompilatorem zamykania - javascript, oop, class, google-closure-compiler

Czy istnieje implementacja klasowego dziedziczenia dla JavaScript, która współpracuje z kompilatorem Closure? ADVANCED_OPTIMIZATIONS?

To wygląda jak Implementacja Johna Resiga nie.

Odpowiedzi:

0 dla odpowiedzi № 1

Jest to jedno z najprostszych i dość powszechnych podejść do konfigurowania dziedziczenia:

function Parent() {}

function Child() {}

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

i działa dobrze z kompilatorem zamknięcia. Nie jestem pewien czy Object.create jest poprawnie rozpoznawany, ale spójrz na implementację goog.inherits z biblioteki zamknięcia, która w zasadzie robi to samo.


0 dla odpowiedzi nr 2

Kompilator obecnie rozpoznaje tylko „goog.inherits” i bezpośrednie przypisania do prototypów:

Child.prototype = new Parent();

Obiekt.tworzenie metafory jest oczywistym dodatkiem, ale jeszcze tego nie zrobiono. Aby cokolwiek innego zostało rozpoznane, należy albo zdefiniować nową klasę konwencji kodowania (czyli w jaki sposób goog.inherits jest rozpoznawany podczas sprawdzania typu), albo zmianę w kompilatorze (ponieważ może być wymagane dla Object.create).

Jeśli potrzebujesz wsparcia dla Object.create, zechcesz zgłosić problem tutaj:

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