次の行が何をするのか、何か考えはありますか?
ここでの「Popup」とはどのようなイベントですか?
fireEvent('Popup','ok');
イベントは通常、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つのように見えます...
明らかに(そしてドキュメントによると'Popup'
)、引数を持つタイプのイベントを発生させます'ok'
。これはカスタム イベント タイプのように見えるため、正確に何を行い、引数をどのように解釈するかを調べるには、このイベントを処理するコードのソースまたはドキュメントを参照する必要があります。