15

誰かがこのコードを理解するのを手伝ってくれますか? 私には複雑すぎるようです。

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};


var PageView = (function (_super) {
    "use strict";

    __extends(MyPageView, _super);

 function MyPageView(rootElement, viewModelParameter, calendarWeeksViewModel) {
});


}
4

2 に答える 2

15

だから基本的に

__extends(MyPageView, _super);

オブジェクト指向言語における継承の観点から考えてみてください。クラスがスーパー クラスまたは基本クラスを拡張している場合..

基本的に、ここ MyPageViewではスーパークラスの機能と実装を拡張します。

したがって、ベース ビューにメソッド C() がmethod A() and method B()あり、現在のビューにメソッド C() があるとします。現在のビューは、そのビュー A() , B() and C()内の 3 つのメソッドすべてにアクセスできます。

しかし 、 MyPageViewhasmethod 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

于 2013-05-16T18:55:45.510 に答える