3

次のように、コールバックとトリガーされたイベントの両方をプラグインに追加しました。

// located at the point where the event and callback should be called
el.trigger('initialized', el);
if ($.isFunction(options.onInitialize)) { options.onInitialize(el); }

しかし、私はそれがこのように行われた別の方法を見つけました:

// located at the beginning of the script, after the options are extended
if ($.isFunction(options.onInitialize)) { el.bind('initialized', options.onInitialize; }

// located at the point where the event should be called
el.trigger('initialized', el);

だから、私の質問は、最初のメソッドでコールバックの前にイベントがトリガーされることは重要ですか、それとも両方が同時に発生する2番目のメソッドを使用することに切り替える必要がありますか?

更新: これまでに思いついた唯一の理由は、関数呼び出しを最小限に抑えることです$.isFunction。2 番目の例では 1 回だけ呼び出されます。

4

1 に答える 1

0

私は2番目の方法で行きました。は各サイクルと呼ばれるため、$.isFunction()一度だけ実行する方が効率的です。結果をキャッシュすることもできたので、どちらの方法でも同様に機能すると思います。

于 2010-11-25T19:30:12.300 に答える