Ext.util.Observableの使い方

1783 ワード

Ext.util.Observable
余談は言わないで、まず説明します.
Base class that provides a common interface for publishing events. Subclasses are expected to to have a property "events"with all the events defined, and, optionally, a property "listeners"with configured listeners defined.
簡単に言えば、「鶏肋」(ベースクラス)はイベントを公開するために共通のインタフェースを提供しています.もし誰かが自分のカスタムプラグインに自分の「奸細」を挿入したいなら、おめでとうございます.突破口を見つけました.それは、次の例です.
Ext.namespace('Hanshibin.user');

Hanshibin.user.name=Ext.extend(Ext.util.Observable,{
    constructor:function(config){
        this.name=config.name;
        this.id=config.id;
        this.addEvents("fire","quite");
        this.listeners=config.listeners;
        Hanshibin.user.name.superclass.constructor.call(this,config);
    }
});

var username=new Hanshibin.user.name({
    name:"hanshibin",
    id:"001",
    listeners:{
        "fire":function(){alert('2222');}
    }
});

username.fireEvent('fire');

少し説明します.
1、 this.addEvents("fire","quite");
「fire」を付けなければ、私たちの結果も見られます.そのため、イベントのトリガはこことは関係ありません.
この役割は
eventsプロパティには、イベントを追加すると表示されます.そうすると、on(「バインドイベント」)のときに実行されます.そうしないとerrorに報告されます.
onが欲しくない場合は、登録せずにlistenerに直接追加すればいいです.
2、constructor:
必ずそれを実現しなければなりません.そうしないと、newのオブジェクトは、パラメータを初期化しません.observableはそれを指してご飯を作ってあげます.
3、誰かがここにいるかもしれない.user.name.superclass.constructor.call(this,config);ちょっと疑問ですが、
実はこれがjsの一般的なトリガ関数で、実行時に実際に実行されるのはthisというオブジェクトのconstructor関数です.
引用:
http://tieba.baidu.com/p/802936612
-