1

次の行が何をするのか、何か考えはありますか?

ここでの「Popup」とはどのようなイベントですか?

fireEvent('Popup','ok');
4

2 に答える 2

5

イベントは通常、2つのタイプに分けられます。DOMEventおよびClass.Event

最も一般的には、後者が重要です。this.fireEvent('popup', 'ok');何か素晴らしいことが起こったことをインスタンスに知らせます。

[Options,Events]インスタンスが次のコマンドで作成されている場合は、クラスのミックスインと組み合わせて使用​​されます。

var foo = new someclass({
    onPopup: function(status) {
        console.log(status); // ok!
        console.log(this); // the instance (foo);
    }
});

// later.
foo.fireEvent('popup', 'fail');

しかし、あなたの場合、それがクラスに関するものかどうかはわかりません。理由は次のとおりです。

また、さまざまなコンポーネントをpub / subするためにイベントを発生させることができる、DOM要素のような緩い/あいまいな環境でイベントを使用することもできます。例えば。window.fireEvent('popup', 'ok');-またはあなたの例のようにfireEvent('popup')-それ自体で-他のコンテキストが定義されていないため、グローバルウィンドウオブジェクトでイベントコールバックを起動します。

これは、次のようにブロックに追加したものすべてで機能します。

window.addEvent('popup', function(status) {

});

コンテキストオブジェクトを入力しないことは、スコープチェーンのルックアップと読みやすさのために本当にくだらないです。あなたができるという事実は、fireEvent('domready')あなたがすべきだという意味ではありません。それを書いた人は誰でも、読みやすさを促進しないばかげたショートカットを取っていました。fireEventそれ自体はプロトタイプからのexpandoプロパティであり、グローバル変数/関数ではありませんが、投稿したコードによると1つのように見えます...

于 2012-06-06T15:11:14.603 に答える
2

明らかに(そしてドキュメントによると'Popup')、引数を持つタイプのイベントを発生させます'ok'。これはカスタム イベント タイプのように見えるため、正確に何を行い、引数をどのように解釈するかを調べるには、このイベントを処理するコードのソースまたはドキュメントを参照する必要があります。

于 2012-06-06T14:49:02.160 に答える