Heim >Web-Frontend >js-Tutorial >Definition, Aufruf und Probleme, auf die bei JavaScript-Funktionen geachtet werden sollte

Definition, Aufruf und Probleme, auf die bei JavaScript-Funktionen geachtet werden sollte

零下一度
零下一度Original
2017-04-17 14:46:331389Durchsuche

In diesem Artikel werden hauptsächlich die Definition von JavaScript-Funktionsaufrufen und Vorsichtsmaßnahmen vorgestellt. Freunde in Not können sich auf

Funktionsdefinition

Funktionsanweisungsdefinition


function(a,b){
 return a+b; 
}
Ausdrucksdefinition


var add = function(a,b){return a+b};
//Funktionsausdrücke können Namen enthalten, die bei Rekursion sehr nützlich sind. var f = function fact(x){ if(x<=1) {return 1; }else { return x*faxt(x-1 } }

Funktion als Ausdruck definiert, der Name der Funktion ist optional. Wenn der Funktionsdefinitionsausdruck einen Namen enthält, enthält der lokale Gültigkeitsbereich der Funktion einen an das Funktionsobjekt gebundenen Namen. Tatsächlich wird der Name der Funktion zu einer lokalen Variablen innerhalb der Funktion

Spezifikationen zur Funktionsbenennung

1.like_this()Das erste Zeichen ist ein Kleinbuchstabe. Wenn es mehrere Wörter enthält, werden die Wörter durch Unterstriche getrennt

2.likeThis()Das erste Zeichen ist Kleinbuchstaben: Wenn mehrere Wörter enthalten sind, verwenden die ersten Buchstaben der Wörter außer dem ersten Wort Universitätsbuchstaben

3. Internen Funktionen oder privaten Funktionen wird normalerweise ein Unterstrich vorangestellt

Hinweis: Funktion The Die Deklarationsanweisung wird an den Anfang des externen Skripts oder der externen Funktion gestellt, sodass sie durch Code aufgerufen werden kann, der vor ihrer Definition erscheint.

Bevor eine Funktion als Ausdruck definiert wird, muss sie einer Variablen zugewiesen werden. Daher können im Ausdrucksmodus definierte Funktionen nicht vor der Definition aufgerufen werden

Funktionsrückgabewert

  • Die Rückgabeanweisung gibt den Wert der Funktion an die zurück Anrufer.

  • Es gibt keine Return-Anweisung, dann wird undefiniert zurückgegeben

Verschachtelte Funktion

  • Verschachtelte Funktionen können auf die Parameter und Variablen ihrer Funktionen zugreifen

  • Aber verschachtelte Funktionen können nicht in Schleifen, Bedingungen oder try/cache/finally/with-Anweisungen erscheinen

Funktionsaufruf

  • als Funktion

  • als Methode

  • als Konstruktoren

  • rufen indirekt über ihre Methoden call() und apply() auf

Als Funktion call

add(1,2)

Gemäß den Bestimmungen von ECMAScript3 und nicht-striktem ECMAScript5 für Funktionsaufrufe ist der aufrufende Kontext (der Wert davon) das globale Objekt. Im strikten Modus ist der aufrufende Kontext jedoch undefiniert.

//Definieren Sie eine Funktion und rufen Sie eine Funktion auf, um festzustellen, ob das aktuelle Skript im strikten Modus ausgeführt wird


 var strict = (function(){return this;}());

Aufruf als Methode


var o = {
 m:1,
 n:2,
 add:function(){
  this.result = this.m+this.n;
  }
}
Ein wesentlicher Unterschied zwischen Methodenaufrufen und Funktionsaufrufen. ----Aufrufkontext

o.add() Der Aufrufkontext von add ist o, das heißt: this

o.add() entspricht o['add']()
Methodenkette: Wenn die Methode keinen Wert zurückgeben muss, ist es am besten, diesen direkt zurückzugeben
Dies ist ein Schlüsselwort, keine Variable oder ein Attributname. Die JavaScript-Syntax erlaubt es nicht, diesem
einen Wert zuzuweisen. Im Gegensatz zu Variablen unterliegt das Schlüsselwort this keinen Einschränkungen hinsichtlich seiner Wirkung. Verschachtelte Funktionen erben diesen Wert nicht von der Funktion, die ihn aufruft. var self= this ;In Variable speichern
Wenn die verschachtelte Funktion als Funktion aufgerufen wird, zeigt ihr Wert this auf das Objekt, das sie aufgerufen hat. Wenn es als Funktion aufgerufen wird, ist dies entweder ein globales Objekt (nicht strikter Modus) oder undefiniert (strikter Modus)

Konstruktoraufruf


var o = new Object();
Konstruktoraufrufe, gewöhnliche Funktionsaufrufe und Methodenaufrufe werden in tatsächlichen Parametern verarbeitet. Es gibt Unterschiede in Aspekten wie Aufrufkontext und Rückgabewert.

Klammern können bei jedem Konstruktoraufruf ohne formale Parameter weggelassen werden.


var o = new Object();
var o = new Object;
//等价
Der Konstruktoraufruf erstellt ein neues leeres Objekt. Diese Funktion erbt das neu erstellte Objekt Dieses Objekt dient als Kontext, sodass der Konstruktor mit dem Schlüsselwort this auf das neu erstellte Objekt verweisen kann.

new o.m() Der Kontext des Aufrufs ist nicht o.

Der Konstruktor verwendet keine Rückgabe. Wenn der Konstruktor mithilfe der Return-Anweisung explizit ein Objekt zurückgibt, ist der Wert des aufrufenden Ausdrucks dieses Objekt. Wenn der Konstruktor keinen Wert zurückgibt oder einen primitiven Wert zurückgibt, wird der Rückgabewert ignoriert und das neue Objekt wird als Rückgabeergebnis verwendet.

Indirekter Aufruf

call()

appy()

Das obige ist der detaillierte Inhalt vonDefinition, Aufruf und Probleme, auf die bei JavaScript-Funktionen geachtet werden sollte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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