Dieser Artikel bietet Ihnen eine kurze Einführung in Prototypen und Prototypketten in JavaScript. Ich hoffe, dass er für Freunde hilfreich ist.
[[Prototyp]]
Fast alle Objekte erzeugen bei ihrer Erstellung eine [[Prototyp]]-Kette, die oft als Prototypenkette bezeichnet wird. Wenn Sie versuchen, auf die Eigenschaften eines Objekts zu verweisen, wird die Operation [[Get]] des Objekts ausgelöst. Bei der Standardoperation [[Get]] besteht der erste Schritt darin, herauszufinden, ob das aktuelle Objekt über die gewünschte Eigenschaft verfügt Wenn ja, wird es verwendet. Wenn es nicht gefunden wird, wird nach der Prototypenkette dieses Objekts gesucht. Zum Beispiel:
var one = { type: 'one' } var two = Object.create(one) console.log(two.type) // one
Im obigen Beispiel gibt es kein Typattribut Zwei Objekte, aber weil Object.create (ein neues Objekt mit dem angegebenen Prototypobjekt und den angegebenen Attributen erstellt), werden die beiden Objekte während des Suchvorgangs in der Prototypenkette miteinander verbunden, auch wenn das Typattribut vorhanden ist Wenn es in den beiden Objekten nicht gefunden wird, wird die Suche nach dem Typattribut fortgesetzt und es wird ausgegeben. Wenn Sie die gesamte Prototypenkette durchsuchen und es nicht finden, wird undefiniert
Prototyp
Um klar zu erklären, was Prototyp ist, zuerst ein einfaches Beispiel:function origin(type) { this.type = type console.log(this.type) } origin.prototype.name = 'origin' var son1 = new origin('male') var son2 = new origin('male') console.log(son1.name) // origin console.log(son2.name) // origin
Konstruktor
Lassen Sie uns Schauen Sie sich zunächst ein einfaches Beispiel an:function origin() { } const son = new origin() console.log(origin.prototype.constructor === origin) // true console.log(son.constructor === origin) // true
_proto_
__proto__ ist tatsächlich eine Funktion, die von den meisten Browsern unterstützt wird So greifen Sie auf eine Eigenschaft der internen Prototypenkette zuson.__proto__ === origin.prototype // true
Das obige ist der detaillierte Inhalt vonEine kurze Einführung in Prototypen und Prototypketten in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!