Heim > Web-Frontend > js-Tutorial > Zusammenfassung der Übergabe einer Funktion als Parameter einer anderen Funktion in JS

Zusammenfassung der Übergabe einer Funktion als Parameter einer anderen Funktion in JS

黄舟
Freigeben: 2017-03-01 15:11:03
Original
1153 Leute haben es durchsucht

Heute bin ich beim Registrieren von Ereignissen für Elemente auf ein Problem bei der Verwendung von addEventListener gestoßen. Ich halte es für notwendig, es zusammenzufassen. Es handelt sich um ein Problem, das durch JS-Funktionen als Parameter verursacht wird. Schauen Sie sich zunächst den folgenden Code an. Glauben Sie, dass mit dem folgenden Code etwas nicht stimmt? Ist es möglich, ID3 aufzurufen, nachdem ich auf das Element geklickt habe, das ID3 entspricht?

Beispiel 1

var obj3=document.getElementById('id3');
obj3.addEventListener('click',curClick('id1'),true);
function curClick(id){
		alert(id);
}
Nach dem Login kopieren

Die Antwort ist nein, es kann nicht den gewünschten Effekt erzielen, da diese Codezeile dies nicht tun wird Wird verwendet, wenn die Seite geladen wird. id3 wird angezeigt. Wenn ich auf das Element klicke, das id3 entspricht, passiert auf der Seite nichts.

Also habe ich den Code auf die folgenden zwei Situationen geändert:

Beispiel 2

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

	function curClick(id){
		alert(id);
	}
Nach dem Login kopieren

Beispiel 3

var obj1=document.getElementById('id1'); 
obj1.addEventListener('click',curClick1,true);
function curClick1(){
  alert('okey');
}
Nach dem Login kopieren


Die Ausführung ist dieses Mal normal. Warum ist das so?

Denn in der JS-Welt ruft curClick('id3') curClick('id3') direkt auf, anstatt es als Parameter zu übergeben , wenn Sie keine Parameter übergeben müssen, übergeben Sie einfach den Funktionsnamen direkt. Wenn Sie Parameter übergeben müssen, gibt es zwei Lösungen

Methode 1: Mit Hilfe anonymer Funktionen , die zu übergebende Funktion, platzieren Sie sie in einer anonymen Funktion und verwenden Sie die anonyme Funktion als Parameter wie Beispiel 2

zB: use function(){myfunction(val1,val2, ...);} als Parameterübergabe.

Zweitens: Schreiben Sie die Funktion neu, die übergeben werden muss

function curClick1(val){
<span style="white-space:pre">	</span>return function(){
		alert(val);
	};
}
Nach dem Login kopieren

Das Obige ist eine Zusammenfassung der Übergabe einer Funktion als Parameter einer anderen Funktion in JS und mehr Für verwandte Inhalte achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage