Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über Konstruktor-Grundkenntnisse in Javascript

Eine kurze Diskussion über Konstruktor-Grundkenntnisse in Javascript

亚连
亚连Original
2018-05-21 10:16:20877Durchsuche

Jetzt werde ich Ihnen eine kurze Diskussion über den Konstruktor in Javascript bringen. Lassen Sie mich es jetzt mit Ihnen teilen und es allen als Referenz geben.

Konstruktor, Konstruktor, dieser Name ist uns allen bekannt. Konstruktor verweist immer auf den Konstruktor, der das aktuelle Objekt erstellt.

Hier ist zu beachten, dass jede Funktion ein Prototypattribut hat und der Konstruktor dieses Prototyps auf diese Funktion verweist. Dies geschieht, wenn wir den Prototyp dieser Funktion ändern. Zum Beispiel

function Person(name,age){
  this.name = name;
  this.age = age;
}

Person.prototype.getAge = function(){
  return this.age;
}
Person.prototype.getName = function(){
  return this.name;
}

var p = new Person("Nicholas",18);
console.log(p.constructor); //Person(name, age)
console.log(p.getAge()); //18
console.log(p.getName()); //Nicholas

Aber wenn dies der Fall ist:

function Person(name,age){
  this.name = name;
  this.age = age;
}

Person.prototype = {
  getName:function(){
    return this.name;
  },
  getAge:function(){
    return this.age;
  }
}

var p = new Person("Nicholas",18);
console.log(p.constructor); //Object()
console.log(p.getAge()); //18
console.log(p.getName()); //Nicholas

Infolgedessen hat sich der Konstruktor geändert.

Der Grund dafür ist, dass der Prototyp selbst auch ein Objekt ist. Der obige Code entspricht

Person.prototype = new Object({
  getName:function(){
    return this.name;
  },
  getAge:function(){
    return this.age;
  }
});

Da der Konstruktor immer auf den Konstruktor verweist, der das aktuelle Objekt erstellt, ist er nicht schwer zu verstehen der obige Code p.constructor Die Ausgabe ist Object.

Was soll ich tun, wenn ich möchte, dass der Konstruktor nach der Änderung des Prototyps immer noch auf Person verweist? Es ist ganz einfach, weisen Sie Person.prototype.constructor einfach direkt einen Wert zu:

Person.prototype = {
  constructor:Person,
  getName:function(){
    return this.name;
  },
  getAge:function(){
    return this.age;
  }
}

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Eine einfache Implementierung des Zuschneidens und Speicherns von Bildern mit Javascript

Über JavaScript Array ( array ) So verwenden Sie das Objekt

Verwenden Sie Javascript, um das Bild zuzuschneiden und auf einfache Weise zu speichern

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über Konstruktor-Grundkenntnisse 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