Es werden zwei anonyme Funktionen verwendet, die während der Initialisierung nur einmal beurteilt werden und bei jedem nachfolgenden Aufruf keine Beurteilung erforderlich ist. Der Wirkungsgrad ist relativ hoch. Hier ist ein Beispiel für das Hinzufügen eines Ereignisses
Kopieren Sie den Codecode wie folgt:
// Methode 1
Funktion addEvent(el, type, fn){
if(el.addEventListener){
el.addEventListener(type, fn, false);
}anders{
el.attachEvent('on'+type, fn)
}
}
// Methode 2
var addEvent = document.addEventListener?
function(el, type, fn) {el.addEventListener(type, fn, false);}:
function(el, type, fn) {el.attachEvent('on'+type, fn)};
Methode 1 führt die Beurteilung innerhalb der Funktion durch. Jedes Mal, wenn einem Element ein Ereignis hinzugefügt wird, muss es einmal beurteilt werden, was relativ ineffizient ist.
jQuery 1.6.1/Prototype 1.7/Mootools 1.3/tangram 1.3.6/reg.js/right.js verwenden alle diese Verzweigungsmethode.
Methode 2 verwendet zwei anonyme Funktionen, die während der Initialisierung nur einmal beurteilt werden und bei jedem nachfolgenden Aufruf keine Beurteilung erforderlich ist. Der Wirkungsgrad ist relativ hoch.
Ext/kissy/qwrap verwendet diese Verzweigungsschreibmethode.