2 つの匿名関数が使用されますが、これらは初期化中に 1 回だけ判定され、後続の呼び出しごとに判定は必要ありません。効率は比較的高いです。イベントを追加する例は次のとおりです
次のようにコードをコピーします。
// 方法 1
関数 addEvent(el, type, fn){
if(el.addEventListener){
el.addEventListener(type, fn, false);
}それ以外{
el.attachEvent('on'+type, fn)
}
}
// 方法 2
var addEvent = document.addEventListener?
function(el, type, fn) {el.addEventListener(type, fn, false);}:
function(el, type, fn) {el.attachEvent('on'+type, fn)};
方法 1 では、要素にイベントが追加されるたびに関数内で判定する必要があり、比較的効率が悪くなります。
jQuery 1.6.1/Prototype 1.7/Mootools 1.3/tangram 1.3.6/reg.js/right.js はすべてこの分岐方法を使用します。
方法 2 では 2 つの匿名関数を使用します。これらの関数は初期化中に 1 回だけ判定され、後続の呼び出しごとに判定は必要ありません。効率は比較的高いです。
Ext/kissy/qwrap はこのブランチ記述方法を使用します。