Heim  >  Artikel  >  Web-Frontend  >  JS-Funktionsaufrufe und Probleme im Zusammenhang mit impliziten Parameterargumenten und so weiter

JS-Funktionsaufrufe und Probleme im Zusammenhang mit impliziten Parameterargumenten und so weiter

一个新手
一个新手Original
2017-09-28 09:21:401388Durchsuche

##1. Mehrere verschiedene Möglichkeiten, Funktionen aufzurufen:
####1 Aufruf als Funktion
####2 Objekt, das objektorientierte Programmierung unterstützt
####3. Rufen Sie als Konstruktor auf, um ein neues Objekt zu erstellen
####4. Diese Methode ist relativ das komplizierteste

## 2. Funktionsaufrufe übergeben zwei implizite Parameter und existieren im Umfang der Funktion: Argumente und dies
###Funktionsparameterübergabe Vorgehensweise mit Inkonsistenzen mit formalen Parametern:
####1. Tatsächliche Parameter>Formale Parameter--》Die überschüssigen tatsächlichen Parameter werden nicht zugewiesen
####2 Tatsächliche Parameter

## 3.
####1. Funktionskontext: hängt von der aufrufenden Methode der Funktion ab (vier aufrufende Methoden).
####2. Argumente: eine Sammlung aller Parameter mit einem Längenattribut, die mit Argumenten[2] usw. abgerufen werden können, aber Argumente sind keine Arrays und diese Methoden ohne Arrays
# ###3. Dies: Verweist auf ein Objekt, das implizit mit dem Funktionsaufruf verknüpft ist, genannt Funktionskontext

## Vier:
####1 ein Funktionsaufruf: Bezieht sich auf die erste Methode der oben genannten vier Methoden, die sich von den anderen drei unterscheidet
Zum Beispiel: function test(a,b){}/var test = function(a,b){}
Der Funktionskontext zu diesem Zeitpunkt ist Fenster, das heißt **this==window**

####2 „Als Methode“-Aufruf: Wenn eine Funktion einem zugewiesen wird Objekt und dieses Attribut, das auf die Funktion verweist, werden verwendet
I. Das Objekt, zu dem eine Methode gehört, kann damit im Methodenkörper aufgerufen werden

var o = {};
o.test = function(){};
o.test();

Zu diesem Zeitpunkt die Funktion context ist das Objekt o, d Funktion, verwenden Sie das Schlüsselwort new vor dem Funktionsaufruf
function test(){return this};

###Besonderheiten des Konstruktors:
## ##I. Erstellen Sie ein neues leeres Objekt
####II. Das Objekt des Konstruktors ist dieses Objekt und wird somit zum Kontext des Konstruktors

####III Rückgabewert, das neu erstellte Objekt wird als Rückgabewert des Konstruktors zurückgegeben




####Methoden „apply()“ und „call()“: Geben Sie explizit ein beliebiges Objekt als Funktionskontext an
apply() erfordert zwei Parameter: 1. Das Objekt als Funktionskontext 2. Als Array von Funktionsparametern

call() sind ebenfalls zwei Parameter erforderlich: Der Unterschied besteht darin, dass der zweite Parameter eine Parameterliste
function Ninja(){
this.skulk = function(){return this};
//无显式返回,故返回this===o
}===function Ninja(){
var o = {};
o.skulk = function(){return this;};
return o;
}
var ninja1 = new Ninja();
var ninja2 = new Ninja();
ninja1.skulk === ninja1;
ninja2.skulk === ninja2;
ist

## ermöglicht die Verwendung jedes Elements als Kontext von apply() und call()

Das obige ist der detaillierte Inhalt vonJS-Funktionsaufrufe und Probleme im Zusammenhang mit impliziten Parameterargumenten und so weiter. 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