Maison >interface Web >js tutoriel >Introduction à l'idée de la fonction paresseuse de js
La fonction paresseuse est une autre application de la programmation fonctionnelle js. La fonction paresseuse signifie que la branche d'exécution de la fonction ne sera exécutée que lorsque la fonction est appelée pour la première fois. Cet article présentera l'idée de la fonction paresseuse js. à tout le monde. J'espère que cela sera utile à tout le monde.
Avant que vue, réagis et d'autres frameworks soient largement utilisés, nous devons utiliser jQuery ou natif js pour faire fonctionner dom et écrire du code. Lorsque nous utilisons natif js pour la liaison d'événements, nous. can La méthode pour appliquer les événements de liaison au niveau DOM2 est : element.addEventListener() Pour des raisons de compatibilité, il existe également :
element.attachEvent(). Nous devons donc l'encapsuler dans une méthode :
function emit(element, type, func) { if (element.addEventListener) { element.addEventListener(type, func, false); } else if (element.attachEvent) { element.attachEvent('on' + type, func); } else { //如果不支持DOM2级事件 element['on' + type] = func; } }
À ce stade, si un élément doit ajouter plusieurs événements de clic via un seul comportement, tel que :
emit(div, 'click', fn1); emit(div, 'click', fn2);
pour le première fois au div Lors de la liaison de l'événement fn1, vous savez déjà quelle méthode de liaison le navigateur peut effectuer. Lors de la liaison de fn2, il n'est pas nécessaire de juger à nouveau, alors le code peut être modifié :
function emit(element, type, func) { if (element.addEventListener) { emit = function (element, type, func) { element.addEventListener(type, func, false); }; } else if (element.attachEvent) { emit = function (element, type, func) { element.attachEvent('on' + type, func); }; } else { emit = function (element, type, func) { element['on' + type] = func; }; } emit(element, type, func); }
. En d'autres termes, nous redéfinissons la fonction après le premier jugement, de sorte qu'aucun jugement ne soit nécessaire lors d'une liaison ultérieure. Du point de vue des performances, même si une fermeture est créée, c'est mieux que d'exécuter la même fonction plusieurs fois par la suite.
C'est l'idée paresseuse des fonctions Pour un même jugement, il suffit de le faire une seule fois.
Cet article provient de la rubrique tutoriel js, bienvenue pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!