Was ist der Unterschied zwischen __proto__
und prototype
Einstellwerte __proto__` und `Prototyp in Javascript
ich die meisten Artikel im Web zu lesen, und ich kann es immer noch nicht verstehen .. soweit ich verstehen __proto__
ist die Eigenschaft, die für Prototyp-Objekt ist ist das eigentliche Objekt bin ich richtig? ....
Warum nur Funktionen prototypische Eigenschaften haben? Und wie ist es ein Objekt?
var fn = function(){};
console.dir(fn);
Ausgang
function fn() arguments: null caller: null length: 0 name: "" prototype: Object __proto__:() <function scope>
Verwenden von Objekt und die Funktion I versuchen Werte zu setzen für __proto__
und Prototypen in Chromkonsole, wie unten gezeigt
Ausgang
Object name: "ss", __proto__: Object
//set the values
o.__proto__ = 'aaa';
o.prototype = 'bbb';
//after set the values display the object
console.dir(o);
Ausgang
Object name: "ss", prototype: "aaa", __proto__: Object
//create function and display it
var fn = function(){};
console.dir(fn);
Ausgang
function fn() arguments: null caller: null length: 0 name: "" prototype: Object __proto__:() <function scope>
Ausgang
function fn() arguments: null caller: null length: 0 name: "" prototype: "fff" __proto__: function() <function scope>
Dann merke ich, dass ich keine Werte für __proto__
einstellen, sondern kann Werte prototype
gesetzt. W warum kann ich keine Werte für __proto__
???
Ein 'Die Funktion .prototype' Eigenschaft nicht die Funktion selbst beeinflussen, es bezieht sich auf das Objekt, das der Prototyp für Objekte werden wird, die durch den Aufruf dieser Funktion mit' new' instanziiert . Die Eigenschaft ".__ proto__" eines Objekts bezieht sich auf den tatsächlichen Prototyp dieses Objekts. Das heißt, Fn.prototype === (new Fn()) .__ proto__'. – nnnnnn