Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung von Funktionen und Objektinstanzen mit doppelten Namen in JavaScript

Detaillierte Erläuterung von Funktionen und Objektinstanzen mit doppelten Namen in JavaScript

小云云
小云云Original
2018-01-29 17:50:501295Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Inhalte zu Funktionen und Objekten mit doppelten Namen in JavaScript vor. Ich hoffe, dass er allen helfen kann.

JavaScript ermöglicht die wiederholte Deklaration von Variablen, und die spätere Deklaration überschreibt die vorherige.

var a = 1;
var a = 'x';
console.log(a);
//输出'x'

JavaScript ermöglicht die wiederholte Definition von Funktionen.

JavaScript kennt das Konzept der Überladung nicht. Es unterscheidet Funktionen nur anhand ihrer Namen. Die nach

definierte gleichnamige Funktion überschreibt unabhängig von den Parametern die vorherige.

function test() {
 console.log("test");
}
test(); //输出 "test arg0 + undefined"

function test(arg1) {
 console.log("test arg" + arguments.length + " + " + arg1);
}
test(1,2); //输出 "test arg2 + 1"

Wenn die Anzahl der tatsächlichen Parameter kleiner ist als die formalen Parameter, dann sind die verbleibenden Standardzuweisungen undefiniert; wenn die Anzahl der übergebenen tatsächlichen Parameter größer ist als die Anzahl der formalen Parameter, dann Alle werden übergeben, aber es gibt keinen entsprechenden formalen Parameter, auf den verwiesen werden kann (Sie können jedoch Argumente verwenden, um die verbleibenden Parameter abzurufen)

function test(arg1) {
 for(var i=0; i<arguments.length; i++) {
 console.log(arguments[i]);
 }
}
test(1,2); //输出 1 2

Wenn eine Variable denselben Namen hat Als Funktion wird die Variable wirksam

Dies beinhaltet das Vorparsen von Variablen und Funktionen:

- Variablendeklarationen werden oben platziert, und Funktionsdeklarationen werden ebenfalls darauf platziert top und vor Variablen deklariert.

- Wenn die Deklaration einer Variablen und die Zuweisungsanweisung zusammen geschrieben werden, teilt die JS-Engine sie in zwei Teile auf: Deklaration und Zuweisung. Die Deklaration wird oben platziert und die Zuweisung bleiben an der ursprünglichen Position.

- Deklarierte Variablen werden nicht erneut deklariert.

var a = 100;
function a() {
 return "function";
}
console.log(a); //输出 100
console.log(a()); 
/*
报错
Uncaught TypeError: a is not a function
 (anonymous function) @test.html:9
*/

Es gibt zwei Arten von Funktionen in JS, eine ist eine normale Funktion und die andere ist ein Funktionsobjekt. Das Folgende ist ein „Funktionsobjekt“, das tatsächlich eine anonyme Funktion deklariert und dann der Variablen die Init-Methode der Funktion zuweist.

var a = 100;
var a = function() {
 return "function";
}
console.log(a);
/* 
输出
function() {
 return "function";
}
*/
console.log(a()); //输出 "function"

Die Funktion hat denselben Namen wie die interne Variable

Definieren Sie eine gewöhnliche Funktion, dh definieren Sie einen Schlüssel unter der Fenstervariablen, sein Name ist der Funktionsname und sein value ist die Adresse der Funktion. Dies innerhalb der Funktion zeigt auf das Fensterobjekt.

function a() {
 console.log(this); //输出 window{...}
 this.a = 1;  //即 window.a = 1,此时window下的function a已经被该变量覆盖了。
 var a = 5;  //下面的这几个变量都是局部变量,仅在花括号范围内有效。 
 a = 10;
 var v = "value"
 return "function";
}
console.log(a);  //输出 function a {...}
console.log(a()); //输出 "function"
console.log(a);  //输出 1
console.log(v);
/*
输出
Uncaught ReferenceError: v is not defined
 (anonymous function) @ mycolor.html:15
*/

Verwandte Empfehlungen:

Detaillierte Erklärung von jQuery und Ajax zur Implementierung doppelter Benutzernamen

Informationen dazu js lösen Das Problem des sequentiellen Aufrufs von Methoden mit doppelten Namen

Betrachtung der Initialisierungsmethode aus den doppelten Namen von JavaScript-Funktionen_Javascript-Fähigkeiten

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Funktionen und Objektinstanzen mit doppelten Namen in JavaScript. 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