Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung verschiedener Aufrufmethoden benannter Funktionen in JavaScript_Javascript-Kenntnissen

Zusammenfassung verschiedener Aufrufmethoden benannter Funktionen in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:32:071563Durchsuche

Ein früherer Artikel erwähnte Mehrere Möglichkeiten, anonyme Funktionen aufzurufen. Dieser Artikel befasst sich mit den verschiedenen Möglichkeiten, benannte Funktionen aufzurufen.

1, ()

Am häufigsten wird der ()-Operator zum Aufrufen/Ausführen einer Funktion verwendet:

Code kopieren Der Code lautet wie folgt:

// Parameterlose Funktion fun1
Funktion fun1() {
alarm('Ich wurde angerufen');
}
fun1();

// Parametrisierte Funktion fun2
Funktion fun2(param) {
alarm(param);
}
fun2('Ich wurde gerufen');

Nachdem ECMAScript3 den Aufruf und die Anwendung auf die Funktion hinzugefügt hat, gibt es die folgenden zwei Typen.

2. Anruf

Code kopieren Der Code lautet wie folgt:

// Parameterlose Funktion fun1
Funktion fun1() {
alarm('Ich wurde angerufen');
}
fun1.call(null);

// Parametrisierte Funktion fun2
Funktion fun2(param) {
alarm(param);
}
fun2.call(null,'Ich wurde angerufen')

3. Bewerben

Code kopieren Der Code lautet wie folgt:

// Parameterlose Funktion fun1
Funktion fun1() {
alarm('Ich wurde angerufen');
}
fun1.apply(null);

// Parametrisierte Funktion fun2
Funktion fun2(param) {
alarm(param);
}
fun2.apply(null,['Ich wurde angerufen'])

Obwohl „Call“ und „Apply“ lediglich zum Aufrufen/Ausführen von Funktionen verwendet werden können, werden sie eher zum Ändern des Kontexts der Funktionsausführung verwendet.

4. neu (diese Methode wird nicht empfohlen)

Code kopieren Der Code lautet wie folgt:

// Parameterlose Funktion fun1
Funktion fun1() {
alarm('Ich wurde angerufen');
}
neuer Spaß1();

// Parametrisierte Funktion fun2
Funktion fun2(param) {
alarm(param);
}
new fun2('Ich wurde gerufen')

Die Essenz von new besteht darin, eine Instanz einer Klasse zu erstellen/konstruieren. Die hier definierten fun1 und fun2 sind offensichtlich keine Klasse (nein, kein Prototyp). Aber beide Funktionen wurden ausgeführt. Dies ist ein Nebeneffekt von new.

Von den oben genannten Aufrufmethoden gibt es keinen Unterschied in den Ausführungsergebnissen der vier Methoden. Wenn die Funktion jedoch einen Rückgabewert hat, sind Sie möglicherweise etwas enttäuscht, wenn Sie sie mit new aufrufen.

Code kopieren Der Code lautet wie folgt:

// Funktionsspaß
mit Rückgabewert Funktion fun() {
alarm('Ich wurde angerufen');
Geben Sie „jack“ zurück;
}
var c = new fun();
alarm(c);//[object Object], warum nicht „jack“?

Ändern Sie es wie folgt

Code kopieren Der Code lautet wie folgt:

// Funktionsspaß
mit Rückgabewert Funktion fun() {
alarm('Ich wurde angerufen');
Geben Sie {name:'jack'};
zurück }
var c = new fun();
Alert(c.name); //jack, normal zurückgegeben

Um es zusammenzufassen: beim Aufrufen einer Funktion mit einer neuen Methode. Wenn ein Rückgabewert vorhanden ist und der Rückgabewert ein integrierter Typ (Basistyp) von JavaScript ist, z. B. String, Number, Boolean usw., wird der Wert nicht zurückgegeben, wenn der Rückgabewert ein Objekt ist Funktion, Array und andere Objekttypen, das Objekt, die Funktion und das Array werden direkt zurückgegeben.

Was genau gibt new fun() zurück, wenn der Rückgabewert ein integrierter Typ (Basistyp) ist? Im nächsten Artikel werden die Details des neuen Methodenaufrufs erläutert.

Stellungnahme:
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