JavaScript -Objektteil
1: grundlegender Teil
1. Alle Variablen in JavaScript sind Objekte, wobei zwei Ausnahmen null und undefiniert sind.
2.Jscript unterstützt vier Arten von Objekten: interne Objekte, generierte Objekte, hostgegebene Objekte (alle BOM- und DOM-Objekte sind Hostobjekte) und ActiveX-Objekte (externe Komponenten).
3.. Microsoft JScript bietet 11 interne (oder integrierte ") Objekte. Es handelt sich um Array-, Boolean-, Datum, Funktions-, Global-, Math-, Nummer-, Objekt-, Regexp-, Fehler- und String -Objekte.
4. Objekte sind nur spezielle Daten. Objekte haben Eigenschaften und Methoden. JavaScript ist eine objektorientierte Sprache, aber JavaScript verwendet keine Klassen. JavaScript basiert auf Prototyp, nicht klassenbasiert.
5. Attribut: Ist eine Variable, die einem bestimmten Objekt angeschlossen ist. Methode: Es ist eine Funktion, die nur von einem bestimmten Objekt aufgerufen werden kann.
6. Jscript -Objekte sind Sammlungen von Eigenschaften und Methoden. Eine Methode ist eine Funktion, die ein Mitglied eines Objekts ist. Ein Attribut ist ein Wert oder ein Satz von Werten (in Form eines Arrays oder Objekts), das ein Mitglied eines Objekts ist.
7. JavaScript -Objekte basieren auf Konstruktorfunktionen. Bei Verwendung von Konstruktorfunktionen zum Erstellen eines neuen Objekts kann gesagt werden, dass ein neues Objekt instanziiert wird. Eigenschaften sind Variablen innerhalb der Konstruktorfunktion.
Objekte, die mit Konstruktorfunktionen instanziiert wurden:
cat = new Animal ();
8. JavaScript ist eine objektbasierte Sprache, und fast alles, was Ihnen begegnet ist, ist ein Objekt. Es handelt sich jedoch nicht um eine echte objektorientierte Programmiersprache (OOP), da es in seiner Syntax keine Klasse (Klasse) gibt.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
// Objekt ist eine Sammlung von Namen/Wertpaaren
var browser = {// Objekt ist in lockigen Klammern eingeschlossen
Name: "Firefox",
Kernel: "Gecko"
};
</script>
Die Codekopie lautet wie folgt:
// Zugriff auf die Eigenschaften des Objekts über DOT (.) Oder "[]"
browser.name // "Firefox"
Browser ["Kernel"] // "Gecko"
Objekte (OBJCT) sind eine Sammlung von Eigenschaften, jede Eigenschaft besteht aus "Namen/Wertpaaren". JS definiert auch ein spezielles Objekt - ein Array, bei dem es sich um eine bestellte Menge von nummerierten Werten handelt. JS definiert auch ein spezielles Objekt - eine Funktion ist ein Objekt mit ausführbarer Code zugeordnet. Es wird den Code ausgeführt, indem die Funktion aufgerufen und das Betriebsergebnis zurückgegeben wird.
Klären Sie das Konzept:
"Object-basiert = objektorientiert" in JS 4. In JS gibt es keine Klasse (Klasse), aber es nennt einen neuen Namen "Prototype-Objekt", also "class = Prototype-Objekt".
2: Der Unterschied und die Verbindung zwischen Klassen (Prototypobjekte) und Objekten (Instanzen) ###
1. Klassen (Prototypobjekte) sind abstrakt, konzeptionell und repräsentieren eine Art von Dingen.
2. Das Objekt ist konkret, praktisch und repräsentiert eine bestimmte Sache.
3. Klasse (Prototyp -Objekt) ist eine Vorlage für Objektinstanzen, und Objektinstanzen sind Individuen der Klasse.
Ein häufiges Missverständnis ist, dass der wörtliche Wert einer Zahl kein Objekt ist. Dies liegt an einem Fehler im JavaScript -Parser, der versucht, den Punktoperator als Teil des numerischen Nennwerts des schwimmenden Punktes zu analysieren.
Es gibt viele Problemumgehungen, um den wörtlichen Wert einer Zahl wie ein Objekt aussehen zu lassen.
2..tostring (); // Der zweite Punkt kann normal analysiert werden
2.ToString (); // achten Sie auf die Räume vor dem Punkt
(2) .ToString (); // 2 wird zuerst berechnet
Attribute löschen
Die einzige Möglichkeit, eine Eigenschaft zu löschen, besteht darin, den Löschbetreiber zu verwenden. Wenn Sie die Eigenschaft auf undefinierte oder NULL einstellen, löscht die Eigenschaft nicht wirklich, sondern beseitigt einfach die Assoziation zwischen der Eigenschaft und dem Wert.
Drei Hauptmerkmale von JavaScript-objektorientiertem JavaScript
Einkapselung: Es wird keine interne Implementierung berücksichtigt, nur die funktionale Verwendung wird berücksichtigt
Vererbung: Erben Sie ein neues Objekt aus einem vorhandenen Objekt
Polymorphismus: Der sogenannte Polymorphismus bezieht sich auf mehrere Zustände, die sich in verschiedenen Situationen beziehen.
1. Verpackung
Einkapselung bedeutet, die Gemeinsamkeiten (einschließlich Attribute und Verhaltensweisen) von Dingen zu gruppieren, die zur gleichen Kategorie in eine Klasse gehören, um sie einfach zu verwenden. Zum Beispiel kann das menschliche Ding auf folgende Arten eingekapselt werden:
Menschen{
Alter (Attribut 1)
Höhe (Attribut 2)
Geschlecht (Attribut drei)
Dinge tun (eines der Verhaltensweisen)
Gehen (Verhalten 2)
Sprechen (Akt 3)
}
Vorteile der Kapselung:
Die Kapselung schützt die Integrität interner Daten;
Die Kapselung erleichtert die Wiederbelebung von Objekten.
Schwächen Sie die Kopplung zwischen Modulen und verbessern Sie die Wiederverwendbarkeit von Objekten;
Hilft, Namespace -Konflikte zu vermeiden.
Siehe das folgende Beispiel:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var boy = {}; // Erstellen Sie ein leeres Objekt
boy.name = "xiao ming"; // Werte gemäß den Eigenschaften des Prototypobjekts zuweisen
boy.age = 12;
var girl = {};
Mädchen.Name = "Xiaohong";
Mädchen.age = 10;
</script>
Dies ist die einfachste Kapselung, die zwei Attribute in einem Objekt zusammenfasst. Diese Schreibmethode hat jedoch zwei Nachteile. Eine davon ist, dass es sehr problematisch sein wird, wenn Sie mehr Instanzen generieren. Das andere ist, dass es keine Möglichkeit gibt, zu sagen, ob zwischen der Instanz und dem Prototyp eine Verbindung besteht.
Konstruktormodus
Um das Problem der Erzeugung von Instanzen aus Prototypobjekten zu lösen, liefert JavaScript ein Konstruktormuster.
Der sogenannte "Konstruktor" ist tatsächlich eine gewöhnliche Funktion, diese Variable wird jedoch intern verwendet. Die Verwendung des neuen Operators für den Konstruktor kann eine Instanz generieren, und diese Variable wird an das Instanzobjekt gebunden.
Zum Beispiel können die Prototypobjekte von Jungen und Mädchen jetzt so geschrieben werden:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktionsperson (Name, Alter) {
this.name = name;
this.age = Alter;
}
</script>
Wir können jetzt Instanzobjekte generieren.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var boy = neue Person ("Xiao ming", "12");
var girl = neue Person ("Xiaohong", "10");
Alert (Boy.Name); // Xiao Ming
Alarm (Boy.age); // 12
</script>
Zu diesem Zeitpunkt enthalten Jungen und Mädchen automatisch ein Konstruktorattribut, das auf seinen Konstruktor verweist.
Die Codekopie lautet wie folgt:
Alert (Boy.Constructor == Person); //WAHR
alarm (Mädchen.Constructor == Person); //WAHR
Das Prototyp -Muster JavaScript stipuliert, dass jeder Konstruktor ein Prototypattribut auf ein anderes Objekt hat. Alle Eigenschaften und Methoden dieses Objekts werden von der Konstruktorinstanz vererbt.
Dies bedeutet, dass wir diese unveränderten Eigenschaften und Methoden im Prototypobjekt direkt definieren können.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
Funktionsperson (Name, Alter) {
this.name = name;
this.age = Alter;
}
Person.Protype.Type = "Human";
Person.Protype.eat = function () {
Alarm ("Rice essen");
}
</script>
Generieren Sie dann die Instanz:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var boy = neue Person ("Xiao ming", "12");
var girl = neue Person ("Xiaohong", "10");
Alert (Boy.Type); // menschlich
boy.eat (); // essen
</script>
Zu diesem Zeitpunkt sind die Typ -Attribute und Eat () -Methoden aller Instanzen tatsächlich dieselbe Speicheradresse, was auf das Prototyp -Objekt hinweist und so die Betriebseffizienz verbessert.
alarm (boy.eat == Mädchen.eat); //WAHR
Eine Prototyp-Eigenschaft ist eine integrierte Eigenschaft, die die Konstruktorfunktion angibt, die das Objekt erweitert.
Der folgende Code fügt der Tierkonstruktor -Funktion eine neue Attributgröße hinzu, die das Prototyp -Attribut des CAT -Objekts ist. Durch die Verwendung von Prototypeigenschaften können alle Objekte, die Tierkonstruktorfunktionen erweitern, auf die Größe der Größe zugreifen
Cat = New Animal ("Katzen", "miow", "Walk/Run");
Cat.Prototype.size = "fat";
In diesem Fall ist das Größenattribut aller tierischen Objekte "Fett". Der Prototyp stand zu einer neuen Instanz des Objekts. Da es sich immer noch um ein Objekt handelt, können dem Objekt neue Attribute hinzugefügt werden. Genau wie Style ein Objekt in JavaScript, können Sie auch weiterhin Eigenschaften nach dem Stil hinzufügen.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
/*Eine Personklasse definieren*/
Funktionsperson (_name, _age, _salary) {
// Die öffentlichen Attribute der Personklasse sind die öffentlichen Attribute der Klasse als: "this. Attributname" definiert.
this.name = _name;
// private Attribute der Personklasse, die privaten Attribute der Klasse sind definiert als: "VAR -Attributname"
var age = _age;
var salary = _Salary;
// Definieren Sie die öffentliche Methode (privilegierte Methode) der Personklasse, die Definition der öffentlichen Methode der Klasse
Ja: "this.functionName = function () {......}"
this.show = function () {
Alert ("Age ="+Age+"/t"+"salary ="+Gehalt); // Zugriff auf die privaten Eigenschaften der Klasse in der öffentlichen Methode ist zulässig
}
</script>
Wenn ein Objekt nach einer bestimmten Eigenschaft sucht, durchquert es zunächst seine eigenen Eigenschaften. Wenn nicht, wird weiterhin nach dem von [[Prototyp]] verwiesenen Objekt suchen. Wenn nicht, wird weiterhin nach dem Objekt suchen, auf das [[[Prototyp]] bezeichnet wird. [[Prototyp]] und so weiter, bis [[Prototyp]].
Einfach ausgedrückt wird ein Verweis auf ein anderes Objekt über den [[Prototyp]] des Objekts speichern und die Attribute durch diese Referenz durchsucht. Dies ist die Prototypkette.
Globales Fensterobjekt
Jede globale Funktion oder Variable in JavaScript ist eine Eigenschaft des Fensters.
Das Selbstobjekt ist genau das gleiche wie das Fensterobjekt. Selbst wird normalerweise verwendet, um zu bestätigen, dass es in der aktuellen Form ist.
Die Hauptziele des Fensters sind wie folgt:
JavaScript -Dokumentobjekt
JavaScript Frames -Objekt
JavaScript -Verlaufsobjekt
JavaScript -Standortobjekt
JavaScript Navigator -Objekt
JavaScript -Bildschirmobjekt
Mehrere gemeinsame Methoden
valueOf () Methode: Gibt den ursprünglichen Wert des angegebenen Objekts zurück
Die methode split () spaltet die Zeichenfolge in ein String -Array und gibt dieses Array zurück.
Die Indexof () -Methode gibt das erste Auftreten eines angegebenen String -Werts in der Zeichenfolge zurück.
Die Substring () -Methode wird verwendet, um Zeichen in einer Zeichenfolge zwischen zwei angegebenen Indexs zu extrahieren.
Die Substr () -Methode extrahiert die angegebene Anzahl von Zeichenfolgen, die aus der Startpos -Position aus der Zeichenfolge beginnen.
Die join () -Methode wird verwendet, um alle Elemente in das Array in eine Zeichenfolge zu stecken.
ArrayObject.join (Trennzeichen)
Die Reverse () -Methode wird verwendet, um die Reihenfolge der Elemente in einem Array umzukehren.
Die Methode Slice () gibt das ausgewählte Element aus einem vorhandenen Array zurück.
Objekt wörtlich
Objektliterale sind Prozesse, mit denen eine große Anzahl von Attributen erstellt wird.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var company = {
Name: "Microsoft",
Alter: 39,
Mitarbeiter: 99000,
CEO: "Nadella"
};
</script>
Hier sollte beachtet werden, dass Attribute und Attributwerte von Colons (:) getrennt werden; Mehrere Attribute werden durch Kommas (,) getrennt. Das wörtliche Objekt kann auch Methoden definieren. Schreiben Sie einfach die Funktion auf die Attribute dieses Objekts. Dies ist eine anonyme Funktion. Sie müssen nur seinen Methodennamen () schreiben, um ihn anzurufen.
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var hunde = {
Name: "Husky",
Alter: 2,
run: function () {
zurück "123";
}
}
Alert (Dog.run ()); // Wenn Sie Dog.run eingeben, den Code des Funktionsteils, nachdem er angezeigt wird
</script>
JavaScript -Array -Teil
1.Array -Objekt
Array -Objekt: Bietet Unterstützung beim Erstellen von Arrays eines beliebigen Datentyps.
Die Codekopie lautet wie folgt:
ArrayOBJ = New Array ()
ArrayOBJ = New Array ([Größe])
ArrayOBJ = New Array ([Element0 [, Element1 [, ... [, Elementn]]]]])
Definition: var arr = [2,3,45,6]; var arr = New Array (2,4,5,7)
Es gibt keinen Unterschied in der Definition zwischen den beiden, [] hat eine hohe Leistung, da der Code kurz ist.
Verwenden Sie Array- und Objektliterale: var atest = []; Beim Erstellen von Arrays ist die Verwendung von Array -Literalen eine gute Wahl. In ähnlicher Weise können Objektliterale auch verwendet werden, um Platz zu sparen. Die folgenden zwei Zeilen sind gleich, aber verwenden Sie die Objektliterale, um kürzer zu sein:
var otest = neues Objekt; // versuche es nicht zu benutzen
var otest = {}; // die beste Wahl oder var 0test = [];
Traversal Um die beste Leistung von Traversen -Arrays zu erzielen, wird empfohlen, einen Klassiker für die Loop zu verwenden.
Die Codekopie lautet wie folgt:
var list = [1, 2, 3, 4, 5, ...... 100000000];
für (var i = 0, l = list.length; i <l; i ++) {
console.log (Liste [i]);
}
Der obige Code verfügt über eine Verarbeitung, die die Länge des Arrays durch l = list.length untergräbt.
Array -Konstruktor
Da der Konstruktor von Array bei der Umgang mit Argumenten etwas mehrdeutig ist, wird immer empfohlen, die wörtliche Syntax von Arrays [] - zu verwenden, um Arrays zu erstellen.
Daher ist der folgende Code verwirrend:
Neuarray (3, 4, 5); // Ergebnis: [3, 4, 5]
Neuarray (3) // Ergebnis: [] Die Länge dieses Arrays beträgt 3
Versuchen Sie, Array -Konstruktoren zum Erstellen von Neuarrays zu vermeiden. Es wird empfohlen, die wörtliche Syntax von Arrays zu verwenden. Sie sind kürzer und prägnanter, wodurch die Lesbarkeit des Codes erhöht wird.
Eigenschaften des Array -Arrays
3 Eigenschaften des Array -Array: Längenattributs, Prototypattribut, Konstruktorattribut
1. Längenattribut
Das Längenattribut repräsentiert die Länge des Arrays, dh die Anzahl der Elemente darin. Da der Index eines Arrays immer von 0 beginnt, betragen die oberen und unteren Grenzen eines Arrays: 0 bzw. Länge-1. Im Gegensatz zu den meisten anderen Sprachen ist die Länge Eigenschaft von JavaScript -Arrays veränderlich, was besondere Aufmerksamkeit erfordert.
2.Prototyp -Attribut
Gibt einen Verweis auf den Objekttyp -Prototyp zurück. Das Prototyp -Attribut ist dem Objekt gemeinsam.
Verwenden Sie für Array -Array -Objekte das folgende Beispiel, um den Zweck des Prototyp -Attributs zu veranschaulichen.
Fügen Sie dem Array -Objekt eine Methode hinzu, um den maximalen Elementwert im Array zurückzugeben. Um dies zu erreichen, deklarieren Sie eine Funktion, fügen Sie sie zu Array.Prototype hinzu und verwenden Sie sie.
Die Codekopie lautet wie folgt:
Funktion Array_max ()
{
var i, max = this [0];
für (i = 1; i <this.Length; i ++)
{
if (max <this [i])
max = this [i];
}
MAX zurückgeben;
}
Array.Prototype.max = array_max;
var x = Neuarray (1,2,3,4,5,6);
var y = x.max ();
Nachdem dieser Code ausgeführt wurde, speichert Y den Maximalwert im Array X oder 6.
3.Constructor -Attribut
Eine Funktion, die die Erstellung eines Objekts darstellt. Beschreibung: Das Konstruktorattribut ist ein Mitglied aller Objekte mit Prototyp. Dazu gehören alle jscript -nativen Objekte mit Ausnahme von globalen und mathematischen Objekten. Die Konstruktoreigenschaft enthält einen Verweis auf die Funktion, die eine bestimmte Objektinstanz erstellt.
Zum Beispiel:
Die Codekopie lautet wie folgt:
x = neuer String ("hi");
if (x.constructor == string) // prozess (Bedingung ist wahr).
//oder
Funktion myfunc {
// Funktionskörper.
}
y = neuer myfunc;
if (y.constructor == myfunc) // prozess (Bedingung ist wahr).
Für Arrays:
y = new Array ();
Array -Methode:
Fügte eine Reihe von Geisteskarten bei: