Ответ 1
Итак, в основном
__extends(MyPageView, _super);
Подумайте в терминах наследования на объектно-ориентированном языке. Если класс расширяет класс Super или базовый класс.
Таким образом, в основном здесь MyPageView
расширит функциональность и реализацию суперкласса.
Итак, предположим, что базовый View имеет method A() and method B()
, а текущий View имеет метод C(), тогда у вашего текущего представления есть доступ ко всем трем методам A() , B() and C()
в нем.
Но пусть MyPageView
имеет method B()
, определенный в нем, тогда метод внутри представления примет 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 __();
};
Каждая функция обладает магическим свойством прототипа.
var __extends = this.__extends || function (d, b) {
Чек, если эта функция доступна в этом контексте, если не определена функция, которая принимает 2 аргумента. Объект, который должен быть расширен, и объект, из которого он расширен.
function __() { this.constructor = d; }
Определение новой функции с именем __
, в которой свойство конструктор контекста привязано к object d
__.prototype = b.prototype;
Свойство прототипа Object __
указывается на цепочку b.prototype
..
d.prototype = new __();
Доступ к методам Super View
происходит здесь, где вы задаете свойство прототипа объекта здесь.
Итак, когда новый экземпляр создан, если этот метод недоступен, то из-за prototype
на объекте он проверяет методы в Super View
, потому что он доступен для функции __
, которая привязан к object d