JavaScript ist eine dynamische Sprache, Sie können Objekte zur Laufzeit Attribute hinzufügen oder Attribute zu Objekten löschen.
Die Codekopie lautet wie folgt:
<html>
<kopf>
<script type = "text/javaScript">
/*
// 01. Der erste Weg, um ein Objekt zu definieren
var Object = new Object ();
Alert (Object.username);
//01.1 Hinzufügen von Attribut -Benutzername hinzufügen
Objekt ["Benutzername"] = "liujianglong";
//object.username="liujl ";
Alert (Object.username);
//01.2 Löschen Sie den Attribut -Benutzernamen
Objekt löschen.
Alert (Object.username);
*/
// 02. Der zweite Weg, Objekte zu definieren - die häufigste Methode, um Objekte in JavaScript zu definieren
var Object = {Name: "Zhangsan", Alter: 10, Sex: "Fale"};
alert (Object.Name);
alarm (Object.age);
alert (Object.sex);
</script>
</head>
<body>
</body>
</html>
Eigenschaftsname: Der Methodenname ist auch in Ordnung. Weil die Funktion selbst ein Objekt ist
JavaScript -Array -Sortierung
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
var array = [1,3,25];
///////////////////////////////////////.
var compare = function (num1, num2) {
var temp1 = parseInt (num1);
var temp2 = parseInt (num2);
if (temp1 <temp2) {
Return -1;
} else if (temp1 == temp2) {
Rückkehr 0;
}anders{
Rückkehr 1;
}
}
//Array.Sort(Compare);//01. Der Funktionsname ist eine Objektreferenz
/////////////////////////// .//////// .////.
// 02. Anonyme Funktion method////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
array.sort (Funktion c (num1, num2) {
var temp1 = parseInt (num1);
var temp2 = parseInt (num2);
if (temp1 <temp2) {
Return -1;
} else if (temp1 == temp2) {
Rückkehr 0;
}anders{
Rückkehr 1;
}
});
///////////////////////////////////////.
Alarm (Array);
</script>
</head>
<body>
</body>
</html>
Verschiedene Möglichkeiten, Objekte in JavaScript zu definieren (JavaScript hat nicht das Konzept der Klassen, nur Objekte)
Die erste Methode: Erweitern Sie ihre Eigenschaften und Methoden basierend auf vorhandenen Objekten
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
// 01. Erweitern Sie seine Eigenschaften und Methoden basierend auf vorhandenen Objekten
var Object = new Object ();
Object.username = "Zhangsan";
Object.SayName = Funktion (Name) {
this.username = name;
alarm (this.username);
}
Alert (Object.username);
Object.SayName ("Lisi");
Alert (Object.username);
</script>
Diese Methode hat Einschränkungen, da JavaScript nicht über das Konzept der Klasse wie Java verfügt. Wenn Sie eine Klasse schreiben, kann neu ein Objekt mit diesen Eigenschaften und Methoden erhalten.
Wenn Sie Object2 haben, können Sie zu diesem Zeitpunkt nur eine andere Kopie des oben genannten Codes schreiben, was nicht sehr gut ist.
Die zweite Methode: Fabrikmethode
Ähnlich wie bei statischen Fabrikmethoden in Java.
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
// Objektfabrikmethode
var createObject = function () {
var Object = new Object ();
Object.username = "Zhangsan";
Object.Password = "123";
Object.get = function () {
alert (this.username+","+object.password);
}
Objekt zurückgeben;
}
var obj1 = createObject ();
var obj2 = createObject ();
obj1.get ();
// das Passwort von Objekt 2 ändern
OBJ2 ["Passwort"] = "123456";
obj2.get ();
</script>
</head>
<body>
</body>
</html>
Es gibt Nachteile beim Erstellen von Objekten in der obigen Methode (jedes Objekt hat eine GET -Methode, die den Speicher verschwendet) und die verbesserte Fabrikmethode (alle Objekte teilen eine GET -Methode):
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
// Methode erhalten, die von allen Objekten geteilt wird
var get = function () {
alert (this.username+","+this.Password);
}
// Objektfabrikmethode
var createObject = Funktion (Benutzername, Passwort) {
var Object = new Object ();
Object.username = Benutzername;
Object.Password = Passwort;
Object.get = get; // Hinweis: Die Methodenklammern sind hier nicht geschrieben
Objekt zurückgeben;
}
// Erstellen Sie ein Objekt über die Fabrikmethode
var object1 = createObject ("Zhangsan", "123");
var object2 = createObject ("Lisi", "345");
// die Methode GET aufrufen
Object1.get ();
Object2.get ();
</script>
</head>
<body>
</body>
</html>
Die dritte Methode: Definieren eines Objekts durch Konstruktor
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
var get = function () {
alert (this.username+","+this.Password);
}
Funktionsperson (Benutzername, Passwort) {
// Vor der Ausführung der ersten Codezeile erzeugt die JS -Engine ein Objekt für uns
this.username = userername;
this.Password = Passwort;
this.get = GET;
// Hier gibt es eine versteckte Return -Anweisung, mit der das zuvor generierte Objekt zurückgegeben werden kann [dies unterscheidet sich vom Werksmuster]
}
var person = neue Person ("Zhangsan", "123");
Person.get ();
</script>
</head>
<body>
</body>
</html>
Die vierte Methode: Erstellen Sie ein Objekt in der Prototypmethode
Prototyp ist eine Eigenschaft in einem Objektobjekt, und alle Personenobjekte können auch den Eigenschaftsprototyp haben.
Sie können dem Prototyp des Objekts einige Eigenschaften und Methoden hinzufügen.
Nachteile der einfachen Verwendung von Prototypen zum Erstellen von Objekten: ① kann keine Parameter übergeben, Sie können den Wert nur nach dem Erstellen des Objekts ändern
②Programm Fehler können auftreten
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
Funktion person () {
}
Person.Prototype.username = "Zhangsan";
Person.Prototype.Password = "123";
Person.Prototype.getInfo = function () {
alert (this.username+","+this.Password);
}
var person1 = new Person ();
var person2 = new Person ();
Person1.username = "lisi";
Person1.getInfo ();
Person2.getInfo ();
</script>
</head>
<body>
</body>
</html>
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
Funktion person () {
}
Person.Prototype.username = new Array ();
Person.Prototype.Password = "123";
Person.Prototype.getInfo = function () {
alert (this.username+","+this.Password);
}
var person1 = new Person ();
var person2 = new Person ();
Person1.username.push ("Wanglaowu");
Person1.username.push ("Wanglaowu2");
Person2.Password = "456";
Person1.getInfo ();
Person2.getInfo ();
</script>
</head>
<body>
</body>
</html>
Durch einfaches Definieren eines Objekts mit dem Prototyp können Sie den Attributen im Konstruktor keine Anfangswerte mehr zuweisen und die Attributwerte nur nach dem Erstellen des Objekts ändern.
Die fünfte Methode: Verwenden Sie den Prototyp + Konstruktor, um das Objekt zu definieren -----------------
Die Eigenschaften zwischen Objekten stören sich nicht gegenseitig
Teilen Sie die gleiche Methode unter Objekten
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
// Verwenden Sie die Prototyp + Konstruktormethode, um das Objekt zu definieren
Funktion person () {
// Attributdefinition im Konstruktor
this.username = new Array ();
this.Password = "123";
}
// Die Methode ist im Prototyp definiert
Person.Prototype.getInfo = function () {
alert (this.username+","+this.Password);
}
var p1 = new Person ();
var p2 = new Person ();
p1.username.push ("Zhangsan");
p2.username.push ("lisi");
p1.getInfo ();
p2.getInfo ();
</script>
</head>
<body>
</body>
</html>
Die sechste Methode: Dynamische Prototypmethode -------- Empfohlene Verwendung
Im Konstruktor teilen alle Objekte eine Methode durch Flaggenmenge, und jedes Objekt hat seine eigenen Attribute.
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<script type = "text/javaScript">
var Person = Funktion (Benutzername, Passwort) {
this.username = userername;
this.Password = Passwort;
if (typeof person.flag == "undefined") {
alarm ("aufgerufen");
Person.Prototype.getInfo = function () {
alert (this.username+","+this.Password);
}
Person.flag = true;
}
}
var p1 = neue Person ("Zhangsan", "123");
var p2 = neue Person ("Lisi", "456");
p1.getInfo ();
p2.getInfo ();
</script>
</head>
<body>
</body>
</html>