Quindi, in pratica
__extends(MyPageView, _super);
pensare in termini ofinheritance in un linguaggio Object Oriented. Dove una classe sta estendendo una classe Super o una classe base ..
Quindi fondamentalmente qui MyPageView
estenderà la funzionalità e l'implementazione della super classe.
Quindi diciamo che la vista di base ha method A() and method B()
e la vista corrente ha il metodo C(), quindi la vista corrente ha accesso a tutti e tre i metodi A() , B() and C()
nella sua vista.
Ma diciamo MyPageView
ha method B()
, definito in esso, allora il metodo all'interno della vista avrà precedence over the Method B() of Super View
var __extends = this.__extends || function (d, b) {
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
Ogni funzione ha una proprietà prototype magica.
var __extends = this.__extends || function (d, b) {
Cheks se tale funzione è disponibile in tale contesto, se non definire una funzione, che prende 2 argomenti, l'oggetto che deve essere esteso e l'oggetto da cui si estende ..
function __() { this.constructor = d; }
la definizione di una nuova funzione chiamata __
in cui tale costruttore proprietà del contesto è destinato a object d
__.prototype = b.prototype;
La proprietà prototipo del Object __
è puntato alla catena b.prototype
..
d.prototype = new __();
L'Accesso di metodi di Super View
accade qui, dove si sta impostando la proprietà di prototipi dell'oggetto qui ..
Così quando viene creata la nuova istanza, se il metodo non è disponibile, a causa dello prototype
sull'oggetto, controllerà i metodi nello Super view
perché è disponibile sulla funzione __
che è legata a object d
Duplicato di [Typescript e Google Closure] (http://stackoverflow.com/questions/13635901/typescript-and-google-closure), ma tale domanda è abbastanza gentile da spiegare da dove hanno ottenuto il codice. Ulteriori discussioni [qui] (http://stackoverflow.com/questions/5529285/prototype-chaining-constructor- ereditarietà). Puoi leggere l'ereditarietà prototipale javascript per saperne di più. –