Deux fonctions anonymes sont utilisées, qui ne sont évaluées qu'une seule fois lors de l'initialisation, et aucun jugement n'est requis pour chaque appel ultérieur. L'efficacité est relativement élevée. Voici un exemple d'ajout d'un événement
Copiez le code comme suit :
// Méthode 1
fonction addEvent(el, type, fn){
if(el.addEventListener){
el.addEventListener(type, fn, false);
}autre{
el.attachEvent('on'+type, fn)
}
}
// Méthode 2
var addEvent = document.addEventListener?
function(el, type, fn) {el.addEventListener(type, fn, false);} :
function(el, type, fn) {el.attachEvent('on'+type, fn)};
La méthode 1 effectue le jugement au sein de la fonction. Chaque fois qu'un événement est ajouté à un élément, il doit être jugé une fois, ce qui est relativement inefficace.
jQuery 1.6.1/Prototype 1.7/Mootools 1.3/tangram 1.3.6/reg.js/right.js utilisent tous cette méthode de branchement.
La méthode 2 utilise deux fonctions anonymes, qui ne sont évaluées qu'une seule fois lors de l'initialisation, et aucun jugement n'est requis pour chaque appel ultérieur. L'efficacité est relativement élevée.
Ext/kissy/qwrap utilise cette méthode d'écriture de branche.