Funktion Objekt vs Funktion Instanzobjekt
Vor allem in Javascript, ist eine Funktion auch ein Objekt. Darunter verstehe ich nicht das von new() konstruierte Objekt, sondern die Funktion selbst. Um Verwechslungen zu vermeiden, würde ich solche Objekte als Funktionsobjekt bezeichnen, und für Objekte, die mit dem new() - Konstrukt einer Funktion erstellt wurden, wie Funktion Instanzobjekt.
_ _ Proto und Prototyp Eigenschaften
Jedes Funktionsobjekt in Javascript hat zwei Eigenschaften: _ _ Proto und Prototyp.Darüber hinaus Funktion Instanz Objekt (erstellt mit neuen Konstruktor) hat eine Eigenschaft _ proto _. Die _ proto _ ist, was die Vererbung definiert. Einige gute Ressource auf diese könnten bei
http://zeekat.nl/articles/constructors-considered-mildly-confusing.html
finden Wie wird Vererbung definiert?
Ein Objekt objA erbt ein anderes Objekt ObjC wenn objA ObjC und durch eine beliebige Anzahl von _ _ proto verbunden sind. Wenn also objA _proto _ gleich objB ist und objB _proto _ gleich objC hat, dann erbt objA objB und objC, während objB objC erbt.
Was ist mit Vererbung gemeint?
Es bedeutet jede Vererbungs Objekt kann Verwendung jede Eigenschaft geerbt Objekt.
Was ist Function.prototype
Es ist das Ziel, den _ _ Proto jeder Funktionsobjekt bezieht. Das bedeutet, dass jedes Funktionsobjekt Zugriff auf Eigenschaften von Function.prototype hat, da jedes Funktionsobjekt Function.prototype Objekt erbt. Dies bedeutet auch, dass, wenn Methode Eigenschaft zu Function.prototype Objekt hinzugefügt wird, es für alle möglichen Funktionsobjekte in Javascript verfügbar wäre. Dazu gehören Strings, Number usw.
this.prototype [Name] = func;
dies bezieht sich auf Funktion Objekt, wenn die ‚Methode‘ von Function-Objekt aufgerufen wird s wie Number, String usw. Was bedeutet, dass wir jetzt eine neue Eigenschaft in Funktion Objekt mit Namen "Name", und es ist eine Funktion "func".
gut Was Objekt Prototyp Eigenschaft Funktion ist
A Funktionsobjekt 's Prototyp wird durch die Funktion Instanzobjekt bezeichnet' s _ proto _ erstellt mit dem neuen Konstrukt dieser Funktion.
wenn die folgenden ausgeführt wurde:
Number.method ('integer', function() {...});
dann Number.prototype hat, dass integer Verfahren darin definiert. Dies bedeutet jede Nummer Funktionsinstanzobjekt, z.B. new Number (2.4) würde diese neue Eigenschaft 'integer' von Number.prototype "erben", da die function instance object ihre _proto _ auf Number.prototype setzen würde.
Funktionen sind Objekte. –
@MattBall Ich denke nicht, dass das der OP fragt. Eher denke ich, er/sie fragt, wie "Zahl" von "Funktion" abgeleitet wird. – mc10
Ja, genau @ mc10. – svenyonson