Maison > interface Web > js tutoriel > le corps du texte

Résumé du passage d'une fonction en tant que paramètre d'une autre fonction dans JS

黄舟
Libérer: 2017-03-01 15:11:03
original
1085 Les gens l'ont consulté

Aujourd'hui, lors de l'enregistrement des événements pour les éléments, j'ai rencontré un problème lors de l'utilisation de addEventListener. Il semble que j'ai déjà rencontré ce problème. Je pense qu'il est nécessaire de le résumer. C'est un problème causé par les fonctions JS en tant que paramètres. Regardez d’abord le code suivant. Pensez-vous qu’il y a un problème avec le code suivant ? Est-il possible de faire apparaître id3 après avoir cliqué sur l'élément correspondant à id3 ?

Exemple 1

var obj3=document.getElementById('id3');
obj3.addEventListener('click',curClick('id1'),true);
function curClick(id){
		alert(id);
}
Copier après la connexion

La réponse est non, elle ne peut pas obtenir l'effet que je souhaite, car cette ligne de code ne sera pas utilisé lorsque la page est chargée, id3 apparaîtra. Lorsque je clique sur l'élément correspondant à id3, rien ne se passe sur la page.

J'ai donc modifié le code pour les deux situations suivantes :

Exemple 2

var obj3=document.getElementById('id3');
	obj3.addEventListener('click',function(e){curClick('id3');stopPropagation(e)},true);

	function curClick(id){
		alert(id);
	}
Copier après la connexion

Exemple 3

var obj1=document.getElementById('id1'); 
obj1.addEventListener('click',curClick1,true);
function curClick1(){
  alert('okey');
}
Copier après la connexion


L'exécution est normale cette fois-ci. Pourquoi ?

Parce que dans le monde JS, curClick('id3') appelle curClick('id3') directement au lieu de le passer en paramètre Si vous souhaitez le passer en paramètre. , si vous n'avez pas besoin de transmettre de paramètres, transmettez simplement le nom de la fonction directement. Si vous devez transmettre des paramètres, il existe deux solutions

Méthode 1 : À l'aide de fonctions anonymes. , la fonction à passer, Placez-la dans une fonction anonyme et utilisez la fonction anonyme comme paramètre comme l'exemple 2

par exemple : use function(){myfunction(val1,val2, ...);} comme transfert de paramètres.

Deuxième : réécrivez la fonction qui doit être passée

function curClick1(val){
<span style="white-space:pre">	</span>return function(){
		alert(val);
	};
}
Copier après la connexion

Ce qui précède est un résumé du passage d'une fonction en tant que paramètre d'une autre fonction dans JS, et plus Pour le contenu associé, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!