prototypal-inheritance

___ 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). ___ qstnhdr ___ Wie kann ich eine statische Backbone.Model-Funktion von einer Instanz dieses Modells aufrufen, ohne den Modellnamen anzugeben? ___ tag123backbonejs ___ Backbone.js ist ein JavaScript-Framework mit einer RESTful JSON-Schnittstelle und basiert auf dem MVP-Design (Model-View-Presenter) ___ tag123prototypalheritance ___ Bei der Vererbung von Prototypen wird das Verhalten wiederverwendet, indem vorhandene Objekte, die als Prototypen dienen, geklont werden. JavaScript ist ein sehr gutes Beispiel für prototypbasierte Vererbung in der Praxis. ___ qstntxt ___

Ich habe statische Eigenschaften, auf die ich von Instanzen meiner Backbone.Model-Objekte zugreifen möchte. Ich weiß, dass ich den Elternkonstruktor fest codieren könnte, um die Methode aufzurufen, aber das verhindert, dass ich polymorphe statische Funktionen habe. Ich möchte zum Beispiel die Funktion %code% in %code% bei Bedarf überschreiben können, ohne irgendeinen anderen Code ändern zu müssen.

%Vor%     
___ answer6538048 ___

Hmm. Obwohl der obige Code funktioniert, würde ich es nicht so lassen. Wenn die Funktion über ein Objekt der Klasse logisch zugänglich ist, definieren Sie eine Instanzmethode in der Basisklasse, die die Funktion class / static aufruft. Dies macht den Code sauberer und klarer, denke ich (und die Kunden müssen sich nicht an die etwas arkane Syntax erinnern):

%Vor%     
___ answer6513294 ___

Was funktioniert in Ihrem Beispiel nicht genau? In Firefox und IE bekomme ich zwei Popups mit 'bar', die wie das beabsichtigte Ergebnis aussieht? Der statische Teil scheint sich ebenfalls gut zu verhalten, siehe dieses Spiel .

(Das ist mit der HEAD-Version von Backbone, übrigens; weiß nicht, ob das einen Unterschied macht)

    
___
2
Antworten

Object.create vs direkte prototypische Vererbung

Ich habe mit Object.create in der EcmaScript 5-Spezifikation herumgespielt, und ich versuche, eine Mehrfachvererbungsstruktur zu erstellen. Sagen wir, ich habe ein paar Funktionen: a, b und c. Wenn ich nur mit Prototypen arbeite, kann ich das...
14.06.2011, 02:12
5
Antworten

Rekursive prototypische Vererbung in Javascript?

%Vor% Von Prototypische Vererbung in JavaScript Ich benutze diesen Code seit einiger Zeit, um neue Objekte zu erstellen, die von früheren Objekten stammen. Ich bin jedoch über eine kleine Überraschung gestolpert. %Vor% Beim Versuch, c...
27.05.2011, 03:22
1
Antwort

Javascript console.log zeigt keine abgeleiteten Klassennamen - Vererbung - Klassen

Ich spiele mit ECMAScript6-Klassen. Ich verstehe immer noch nicht, warum der folgende Code: %Vor% Anzeigen: A {} Anstelle von: B {} Live-Beispiel: %Vor% %Vor% Wie kann ich die erwartete logische Ausgabe...
03.08.2015, 10:01
4
Antworten

Prototypische Vererbung in JavaScript

Ich habe mir Douglas Crockfords Gespräche im YUI Theater angeschaut und ich habe eine Frage zur JavaScript-Vererbung ... Douglas gibt dieses Beispiel, um zu zeigen, dass "Hoozit" von "Gizmo" erbt: %Vor% Warum schreibt er Hoozit.prototype...
23.12.2008, 16:45
3
Antworten

Object.defineProperty in ES5?

Ich sehe Beiträge über ein 'neues' Object.create, das die Aufzählung konfigurierbar macht. Es beruht jedoch auf einer Object.defineProperty-Methode. Ich kann keine Cross-Browser-Implementierung für diese Methode finden. Schreiben wir für das...
30.09.2010, 13: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

Kleiner Nachteil bei Crockford Prototypical Inheritance

Ich experimentierte nur mit verschiedenen Vererbungstechniken in JS und stieß auf etwas, das Crockfords Prototyp-Vererbungsmuster leicht befremdete: %Vor% Es ist alles gut - außer wenn Sie sich an der Konsole anmelden - das Objekt erschein...
09.11.2011, 23:12
5
Antworten

Prototypische Programmierung in Python

Javascript verwendet ein prototypbasiertes Modell für seine Objekte. Trotzdem ist die Sprache sehr flexibel und es ist leicht, in ein paar Zeilen Funktionen zu schreiben, die andere Konstrukte ersetzen. Zum Beispiel kann man eine class -Funkt...
07.01.2011, 19:02
3
Antworten

Was ist das Gegenteil von "Prototyp"?

Betrachten Sie Folgendes: %Vor% Wenn o der Prototyp von p ist, was ist p in Bezug auf o ?     
28.11.2013, 07:12
5
Antworten

Anfügen von Methoden an den Prototyp innerhalb der Konstruktorfunktion

Hier ist die Standardmethode des Lehrbuchs zur Beschreibung einer 'Klasse' oder einer Konstruktorfunktion in JavaScript, direkt aus dem Definitiven Leitfaden zu JavaScript : %Vor% Ich mag die baumelnde Prototyp-Manipulation hier nicht, also...
11.03.2010, 22:10