Heim  >  Artikel  >  Web-Frontend  >  Was sind JS-Konstruktormethoden?

Was sind JS-Konstruktormethoden?

PHP中文网
PHP中文网Original
2017-06-28 11:46:091115Durchsuche

Im Folgenden finden Sie eine kurze Diskussion über die Methoden und den Prototyp des js-Konstruktors. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz.

Wenn die Methode im Konstruktor geschrieben wird, nennen wir sie die Methode in der Funktion, und wenn die Methode in das Prototypattribut geschrieben wird, nennen wir sie die Methode im Prototyp.

•Methoden innerhalb der Funktion: Mit den Methoden innerhalb der Funktion können wir auf die privaten Variablen innerhalb der Funktion zugreifen, wenn das Objekt aus dem Konstruktor neu ist Um private Variablen innerhalb des Konstruktors zu betreiben, müssen wir zu diesem Zeitpunkt die Verwendung von Methoden innerhalb der Funktion in Betracht ziehen a Wenn eine Funktion eine große Anzahl von Objekten erstellt und diese Objekte über viele Methoden verfügen, müssen wir darüber nachdenken, diese Methoden zum Prototyp der Funktion hinzuzufügen. In diesem Fall ist der Speicherbedarf unseres Codes relativ gering.

•In tatsächlichen Anwendungen werden diese beiden Methoden häufig in Kombination verwendet. Daher müssen wir zunächst verstehen, was wir benötigen, und dann entscheiden, wie wir es verwenden möchten

Zwei Konstruktoren geschrieben, der erste ist A, dieser Konstruktor enthält eine Methode sayHello; der zweite ist Konstruktor B, wir haben die Methode sayHello für das Prototypattribut von Konstruktor B geschrieben. Das Schreiben von Methoden innerhalb des Konstruktors erhöht die Kosten für die Initialisierung eines Objekts durch Das Schreiben von Methoden für das Prototypattribut reduziert möglicherweise diese Kosten. Sie haben möglicherweise das Gefühl, dass das Aufrufen von Methoden für die Prototypenkette viel schneller ist. Wenn dies bei Ihrem Objekt nicht der Fall ist haben viele Prototypen, ihre Geschwindigkeiten sind eigentlich ungefähr gleich


Darüber hinaus sind einige Dinge zu beachten:
// 构造函数A
function A(name) {
  this.name = name || 'a';
  this.sayHello = function() {
    console.log('Hello, my name is: ' + this.name);
  }
}

// 构造函数B
function B(name) {
  this.name = name || 'b';
}
B.prototype.sayHello = function() {
  console.log('Hello, my name is: ' + this.name);
};

var a1 = new A('a1');
var a2 = new A('a2');
a1.sayHello();
a2.sayHello();

var b1 = new B('b1');
var b2 = new B('b2');
b1.sayHello();
b2.sayHello();

• Zunächst einmal: Wenn Sie eine Methode für das Prototypattribut einer Funktion definieren, denken Sie daran, dass, wenn Sie eine Methode ändern, diese von diesem Konstruktor generiert wird. Die Methode aller Objekte wird geändert • Ein weiterer Punkt ist der Problem der Variablenförderung. Wir können uns den folgenden Code ansehen:

• Bezüglich der Frage der Objektserialisierung wird nicht serialisiert. Sie können den folgenden Code sehen:


func1(); // 这里会报错,因为在函数执行的时候,func1还没有被赋值. error: func1 is not a function
var func1 = function() {
  console.log('func1');
};

func2(); // 这个会被正确执行,因为函数的声明会被提升.
function func2() {
  console.log('func2');
}

Wir können sehen, dass das Ausgabeergebnis {"name":"dreamapple"🎜> ist

Das obige ist der detaillierte Inhalt vonWas sind JS-Konstruktormethoden?. 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