Heim >Web-Frontend >js-Tutorial >JavaScript-Schnellladung
Die Idee wurde von Netscape erfunden und stammt aus der funktionalen Sprache Schema und Self, die Python ein wenig ähnelt.
Eigenschaften: schwache Typisierung, dynamisches Parsen, Funktionen sind Objekte und Objekte basieren auf den ersten drei Merkmale von Prototype
Leicht verständlich, letzteres muss ausführlich erklärt werden.
Die grundlegendste Best Practice: Verwenden Sie Funktionen und Objekte in großen Programmen! Führen Sie keine Journalprogrammierung durch.
Der einfachste Weg, ein Objekt zu erstellen, ist:
var myObject = new Object();
Die Essenz von JavaScript-Objekte Oben ist ein assoziatives Array.
Tipps: Beachten Sie den Unterschied zwischen der Verwendung von functionName() und functionName, wenn Sie einer Variablen eine Funktion zuweisen, während ersteres das Ergebnis der Funktion an die Variable zahlt die Funktionsreferenz auf die Variable.
Sie können JSON verwenden, um JavaScript-Objekte zu erstellen und zu ändern, und JavaScript kann auch von JSON erstellte Objekte ändern.
Konstruktor-/Klassen-/Prototypattribut
JavaScript verfügt auch über die Konzepte von Objekten und Klassen, es gibt jedoch kein Konzept der integrierten Vererbung. Tatsächlich ist jedes JavaScript-Objekt eine Instanz derselben Basisklasse. Diese Basisklasse verfügt über die Fähigkeit, Mitgliedsfelder und -funktionen zur Laufzeit an sich selbst zu binden.
Sichere Alternative: Prototyp-Attribut
Prototyp ist eine Eigenschaft von JavaScript-Objekten, die in OO-Sprachen keine Entsprechung hat. Funktionen und Eigenschaften können einem Konstruktorprototyp zugeordnet werden. Dann arbeiten die Schlüsselwörter „prototyp“ und „new“ zusammen. Wenn eine Funktion mit „new“ aufgerufen wird, werden alle Eigenschaften und Methoden des Funktionsprototyps an das Ergebnisobjekt angehängt.
Java-Code
function MyObject(name, size){
this.name = name;
this.size = size; 🎜>}
MyObject.prototype.tellsize = function(){
alert("size of "+this.name+" is "+this.size);
}
var myObj = new MyObject("tiddles", "7,5 Meter");
myObj.tellSize();
function MyObject(name, size){this.name = name;this.size = size;} MyObject.prototype.tellsize = function(){alert("size of "+this.name+" is "+this.size);} var myObj = new MyObject("tiddles", "7.5 meter");myObj.tellSize(); Beachten Sie, dass wir den Prototyp erst referenzieren können, nachdem wir den Konstruktor deklariert haben. Das Objekt erbt Dinge, die an den Prototyp angehängt wurden, bevor der Konstruktor aufgerufen wurde. Der Prototyp kann zwischen Aufrufen des Konstruktors geändert werden und alles, nicht nur Funktionen, kann an den Prototyp angehängt werden. Die Verwendung von Prototypen zur Definition klassenähnlichen Verhaltens für JavaScript-Objekte ist ein sicherer und zuverlässiger Weg. Erweitern integrierter Klassen In Webbrowsern können einige Kernklassen über den Prototypmechanismus erweitert werden. Java-Code Array.prototype.indexOf = function(obj) { var result = -1; for (var i=0; i< this.length; i++) { if (this[i]==obj){ break; } } } Array.prototype.indexOf = function(obj) {var result = -1; for (var i=0; i< this.length; i++) {if (this[i]==obj){result=i;Pause;}}} Prototyp-VererbungJavaScript hat keine native Implementierung, aber es gibt einige nette Problemumgehungen. Spiegelung von JavaScript-ObjektenWird verwendet, um den Typ des Objekts zu ermitteln Ereignisbehandlung und FunktionskontextWenn Sie die Ereignisbehandlungsfunktion des Dom-Elements programmgesteuert deklarieren, wird beim Klicken auf das Dom-Element das Ereignisobjekt als Parameter des Funktionsaufrufs und das Element selbst verwendet, auch wenn der Funktion keine Parameter zugewiesen sind als Kontextobjekt verwendet. Wenn Sie möchten, dass der Ereignishandler auf das Modellobjekt verweist, an das er angehängt ist, gibt es zwei Möglichkeiten: 1. Referenzieren Sie das Modell mithilfe des Namens 2. Modell an Dom-Knoten anhängen