prototype

___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ tag123prototyp ___ In prototypbasierten Sprachen ist der Prototyp eines Objekts eine Gruppe von Eigenschaften, die von allen Objekten geerbt werden, die auf diesem Objekt basieren. Nicht zu verwechseln mit [Funktionsprototyp], [Prototyp-js], [Prototypmuster], [Prototypumfang] oder [Prototypjs]; Siehe die vollständigen Informationen für Details. ___ qstnhdr ___ JavaScript-Prototyp-Funktion überschreibt nicht die ursprüngliche ___ answer751822 ___

'Funktionskatze' ist nur eine Funktion. Sein Prototyp ist ein leeres Objekt ({}). 'Neue Katze' kann aufgerufen werden, um den Namen eines Mitglieds hinzuzufügen und mit einem neuen Objekt zu sprechen. Unter diesem neuen Objekt befindet sich der Funktionsprototyp, der immer noch {} ist.

%Vor%

Wenn Sie nun in 'cat.prototype.talk' schreiben, fügen Sie dem zugrunde liegenden Objekt Elemente hinzu:

%Vor%

Die Funktion 'talk', die direkt auf die Instanz 'c' gesetzt wird, hat Vorrang vor der 'Diskussion', die indirekt auf dem Konstruktorprototyp von c gesetzt wird.

Sie haben also hier zwei Arten der Vererbung durcheinander gebracht, die "this-associting" -Methode und die "prototype" -Methode.

Das Schreiben von Methoden in Prototypen hat den Vorteil, dass Sie nicht redundante Kopien derselben Elemente in jede Objektinstanz kopieren; Das Schreiben in Instanzen hat den Vorteil, dass das Problem der gebundenen Methoden gelöst wird. Welches du wählst, liegt ganz bei dir, aber mische die beiden nicht. Wenn Sie die Prototyp-Route verwenden möchten, sollte nur 'name' in 'this' geschrieben werden, da dies die einzige Eigenschaft ist, die für jede Instanz spezifisch ist.

    
___ answer751779 ___

Die am Anfang angehängte Funktion wird an das Objekt angehängt (1 Funktion für jede Instanz). der andere ist an den Prototyp gebunden (1 Funktion, die von allen Instanzen geteilt wird).

-Member auf der Objektebene überschreiben diese auf der Prototypebene.

    
___ qstntxt ___

Ich habe Javascript gelernt, als ich auf das Konzept des Prototyps stieß. Es ist mir gelungen, der cat -Klasse neue Methoden hinzuzufügen, aber die ursprüngliche talk -Methode konnte nicht überschrieben werden.

%Vor%

Warum warnt dies den neuen Text nicht?

    
___
2
Antworten

Wie mache ich JavaScript Prototype Vererbung (Kette von Prototypen)

Dies ist eine Frage an den Guru von JavaScript. Ich versuche, die Arbeit mit JavaScript-Prototyp-Modell eleganter zu machen. Hier ist mein Dienstprogramm-Code (es bietet echte Kette von Prototypen und korrekte Arbeit mit instanceof-Operator):...
02.08.2012, 04:19
3
Antworten

So greifen Sie über die Funktion einer Methode auf den Eltern eines Prototyps zu

Ich habe diese Klasse / Funktion %Vor% Ich möchte die Funktion menuClose() aufrufen, die Teil der Menu-Klasse ist, aber ich denke, dieser Code versucht tatsächlich menuClose() vom closetimer -Objekt aufzurufen. Wie referenziere i...
01.11.2010, 20:25
3
Antworten

JavaScript: Eigenschaftszuweisung durch Prototyp

Ich habe Mühe, den Unterschied der folgenden zwei Code-Sätze zu verstehen. Der ursprüngliche Code stammt von dem berühmten Ninja-Tutorial und ich habe ein bisschen für mich selbst vereinfacht. Frage: Ich denke, ich verstehe, wie CodeA fun...
28.07.2010, 00:05
3
Antworten

Den Prototyp von DOM-Elementknoten erweitern?

Ich weiß, wie man jedem Objekt neue Methoden hinzufügt - indem man den Prototyp des Objekts erweitert: %Vor% Aber ist es möglich, nur neue Methoden für DOM-Elementknoten zu definieren? Haben DOM-Elementknotenobjekte einen Prototyp? Oder gibt...
16.11.2010, 11:48
3
Antworten

Erweiterung der Prototyp-Funktion, ohne sie zu überschreiben

Ich muss einen Fehler in der Funktion save der Parse.Object-Bibliothek beheben. Wenn ich jedoch versuche, die ursprüngliche Funktion save in meinem überschriebenen Prototyp aufzurufen, wird die Schleife rekursiv ausgeführt, bis der Stapel...
08.07.2012, 07:27
4
Antworten

String-Prototyp, der sich selbst modifiziert

Soweit ich weiß, ist es nicht möglich, ein Objekt auf diese Weise von sich selbst zu ändern: %Vor% Ist es überhaupt nicht möglich, eine String-Funktion sich selbst modifizieren zu lassen?     
23.10.2009, 18:46
3
Antworten

Was ist der Unterschied zwischen 987 und (987) in JavaScript?

Ich habe eine einfache Erweiterungsmethode geschrieben. %Vor% 987654321.toMillion() löst aus:    SyntaxError: Unerwartetes Token ILLEGAL Aber (987654321).toMillion() funktioniert. Meine Frage ist also: Was ist der Unterschied...
11.10.2012, 08:58
3
Antworten

isPrototypeOf in Javascript

Ich bin ein Anfänger für JavaScript und auf dem Weg zu Prototypen in JavaScript . Wie in dem Artikel hier Erstellen eines Prototyps Die Standardmethode zum Erstellen eines Objektprototyps besteht darin, eine Objektkonstruktorfunk...
11.01.2015, 18:11
6
Antworten

prototypisches Vererbungskonzept in JavaScript als prototypische Sprache

Sie wissen, dass Javascript eine prototypbasierte Programmiersprache ist. Ich habe einige Bücher über Javascript und sein prototypisches Vererbung Konzept gelesen, aber: "Wenn du es einem Sechsjährigen nicht erklären kannst, verstehst du...
30.08.2012, 16:06
2
Antworten

Allgemeine Gründe, sich nicht mit dem Prototyp von Documents und Elements zu befassen

Gibt es allgemeine Gründe, sich nicht mit dem Prototyp von Documents und Elements zu befassen? Ich mag es, ein eigenes kleines Framework zu erstellen, weil mein aktuelles Projekt nicht die Masse an Features der bestehenden Frameworks benötigt...
29.09.2010, 23:23