Heim > Artikel > Web-Frontend > Eine kurze Diskussion über JavaScript-Konstruktoren
Wenn es um „KonstruktionFunktion“ geht, denken die meisten Leute an das Konzept von Java-Klassen, die auch Konstruktoren und deren Verwendungssyntax haben ähnelt der von Java oder Die Syntax zum Erstellen von Objekten ist in anderen klassenbasierten Sprachen ähnlich. JavaScript-Konstruktor ist eine spezielle Art von Funktion, gekennzeichnet durch:
<a href="http://www.php.cn%20/wiki%20/165.html" target="_blank">neu<li></a>
Schlüsselwort-Aufruffunktion<a href="http://www.php.cn/wiki/165.html" target="_blank">new</a>
und ohne new
? new
new
Also mal sehen, was der
-Operator new
macht? 1. Verwenden Sie den neuen Operator, um die Funktion
function Person(name){ this.name = name; this.say = function(){ return "I am " + this.name; } } var person1 = new Person('nicole'); person1.say(); // "I am nicole", um den Konstruktor aufzurufen. Die folgenden Änderungen werden innerhalb der Funktion vorgenommen :
new
, die auf ein leeres Objekt zeigt. Und das -Objekt erbt den Prototyp der
Es ist ersichtlich, dass das größte Merkmal der Verwendung von
zum Aufrufen des Konstruktors darin besteht, dass dasfunction Person(name){ // 创建this变量,指向空对象 var this = {}; // 属性和方法被加入到this引用的对象中 this.name = name; this.say = function(){ return "I am " + this.name; } // 返回this对象 return this; }
-Objekt auf das vom Konstruktor generierte Objekt new
verweist, also gibt die this
-Zeichenfolge zurück: „Ich bin Nicole“. person1.say()
2. Rufen Sie die Funktion direkt auf
小贴士 如果指定了返回对象,那么,"this"对象可能被丢失。 function Person(name){ this.name = name; this.say = function(){ return "I am " + this.name; } var that = {}; that.name = "It is that!"; return that; } var person1 = new Person('nicole'); person1.name; // "It is that!"Wenn die Funktion direkt aufgerufen wird, zeigt das
this
Nehmen wir die Funktion window
als Beispiel und rufen die Funktion
Person
Person
Es ist ersichtlich, dass das Ergebnis des direkten Aufrufs des Konstruktors nicht das ist, was wir haben wollen.
var person1 = Person('nicole'); person1; // undefined window.name; // nicole3. ZusammenfassungUm zu verhindern, dass der Konstruktor aufgerufen wird, weil Sie vergessen haben, das Schlüsselwort
new
new
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über JavaScript-Konstruktoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!