2016-07-27 10 views
0

I erstellen ein Objekt Object.create Methode verwendet, so erwartet Object.createprotoptype Objekt als ersten Parameter und Eigenschaft decriptors der zweite Parameter sind.was der Unterschied zwischen obj.prototype und Object.getPrototypeOf (OBJ)

var obj = Object.create({a:2},{b:{value:3}}) 

so, {a:2} ist der Prototyp des obj. aber wenn ich suche Prototyp wie obj.prototype kehrt undefined aber wenn ich überprüft mit Object.getPrototypeOf(obj) Rückkehr {a:2}

Können Sie mir sagen, was ist hier falsch? Also, was ist der erste Parameter in Object.create? die prototype Eigenschaft:

Dank

+0

Syntax: 'Object.create (proto [, propertiesObject]) 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create –

+0

Plain-Objekte haben kein 'Prototyp'-Property. Verwechseln Sie sich nicht mit 'functionReference.prototype' –

+0

' Object.getPrototypOf (obj) == obj .__ proto__' Aber die Verwendung von '__proto__' wird nicht empfohlen. –

Antwort

1

Sie haben die eine Sache weirdest über die JavaScript-Sprache gefunden. In JavaScript erben Objekte Eigenschaften von Parent über die Prototypkette.

Aber JavaScript funktioniert so, dass die -Eigenschaft eines Objekts nicht der Prototyp dieses Objekts ist - es ist der Wert, der als Prototyp für weitere Objekte verwendet wird, die mit new erstellt wurden. So Car.prototype ist der Wert, der Prototyp der Schaffung einer neuen Instanz mit new Car() sein wird.

Was eigentlich ist der Prototyp eines Objekts in der prototypische Vererbung Sinn ist, was Sie mit Object.getPrototypeOf() bekommen. Weitere Informationen hierzu finden Sie beispielsweise unter Understanding the prototype property in JavaScript

Verwandte Themen