Nachdem ich traditionelle objektorientierte Sprachen wie Java C ++ gelernt habe, bin ich ein wenig unangenehm, wenn ich auf JavaScript wechsle, insbesondere die sogenannte Objektfunktion in JavaScript, die ich manchmal verwirrt bin. Daher habe ich unten einige konzeptionelle Dinge ausgelehrt, um das Lernen und Verständnis zu erleichtern, und werde sie in Kombination mit einigen java-objektorientierten Wissen erklären.
Lassen Sie uns zunächst einige Konzepte verstehen:
1. Was bezieht sich das Objekt zunächst in ECMascript? Es gibt 5 einfache Datentypen in ECMascript: Undefined, Null, Boolean, Nummer, String. Es gibt auch einen komplexen Datentyp, das ist Objekt.
2. Referenztyp-das Konzept der Klasse in Java
Wert des Referenztyps --- Das Konzept der Objekte in Java
3. Funktionen ---- Das Konzept der Methoden in Java
4. var --- deklariert einen Operator einer Variablen. Da die JS -Variable von lose Typen ist, kann locker verwendet werden, um Daten zu speichern. Die Variable wird nur zur Darstellung eines Platzhalters verwendet, sodass die Variable keine Zeichenfolge, int und nur var angeben muss. Beachten Sie, dass das Objekt mit Var deklariert werden kann.
5.Object (), was ist --- der Konstruktor des Objekts in Java, dem Konstruktor des Objekts in JS.
Objekt
JS kann dynamisch Eigenschaften und Methoden hinzufügen.
Erstellen Sie beispielsweise eine Objektinstanz
var obj = new Object();
Das Variable OBJ ist das Objekt des neuen Objekts ().
Nächste:
var obj = new Object (); obj.name = 'zeng'; obj.age = 12; obj.fun = function () {console.log (this.name+this.age);}Dies ist jedoch keine sehr Verkapselung, daher wird die Objektliteraldarstellung häufiger verwendet
var obj = {name: 'zeng', Alter: 12, fun: function () {console.log (this.name+this.age); }} obj.fun (); // Ausdruck: Zeng12Zugriff auf Objekteigenschaften:
1. Verwenden Sie Klammern
console.log(obj["name"]);
2. Verwenden Sie Punkte, es wird empfohlen, diese Methode zu verwenden
console.log(obj.name );
Funktion
Funktionen sind ein wichtiger Teil jeder Sprache. Funktionen werden JS genannt. Sie können auch verstehen, dass es sich um die Java -Methoden und die C -Sprachfunktionen handelt. In Bezug auf die Erklärung und Verwendung können die Funktionen von JS jedoch sehr unterschiedlich sein.
Ein Beispiel für eine Funktion:
Funktion Fun () {return "Beispiel";} console.log (fun ()); // Ausgabe: 'Beispiel'Es ist auch möglich:
var fun = function () {return "Funktionen erstellen mit Ausdrücken"}; console.log (fun ()); // Ausgabe: "Funktionen mit Ausdrücken erstellen" erstellen "Im obigen Beispiel werden Sie feststellen, dass die Funktion keinen Funktionsnamen hat, nur ein variabler Name Spaß, und es gibt eine andere am Ende des Ausdrucks. Semikolon,
Sie können es einfach als Ausdruck verstehen, der eine Variable deklariert. Die Erklärung anderer Variablen ist so geschrieben:
var name = "Zeng"; // Es gibt variable Namen und Semikolons
Nehmen wir ein Beispiel mit Parametern:
Funktion Fun () {Argumente zurückgeben [0] + Argumente [1] + Argumente [2];} console.log (Fun ("this is", "a", "Beispiel"); // Ausgabe: "Dies ist ein Beispiel"Ist es nicht ein bisschen seltsam? Zunächst hat die von mir erstellte Funktion keine Parameter. Bei Aufrufen werden Parameter angegeben, und Parameter können in der Funktion erhalten und zurückgegeben werden.
Tatsächlich müssen wir hier einen Punkt darauf hinweisen, dass die JS -Funktion nichts ausmacht, in einigen Parametern zu bestehen, und es ist es auch nicht darum, welche Art von Parametern sie sind! Der Grund dafür ist, dass die internen Empfangsparameter der Funktion in einem Array gespeichert sind!
Das Array ist die obigen Argumente. Natürlich hat es dem Array nichts aus, ein paar Parameter einzugeben. Wenn es Parameter gibt, werde ich eine hinzufügen, und wenn es keine Parameter gibt, werde ich null.
Wir können diese Funktion als Beispiel verwenden:
Überlastung von Nachahmungsmethoden-Verwenden Sie unterschiedliche Parameter, um unterschiedliche Reaktionen durchzuführen
Funktion fun () {if (argumente.length == 1) {return argumente [0]*10; } if (Argumente.length == 2) {return (Argumente [0]+Argumente [1])*10; } return 10;} console.log (fun (11,111)); // 1220 zurückkehren! ! ! !Keine Überlastung:
Das obige Beispiel ist eine Überlastung von Nachahmungsfunktionen. Warum muss ich es nachahmen? Ich werde bald mehrere Funktionen mit unterschiedlichen Parametern erstellen können.
Funktion Fun (num1) {return "Fun mit nur einem Parameter"} Funktion Fun (num1, num2) {return "Fun mit zwei Parametern";} console.log (Fun (11)); // Ausgabe "Spaß mit zwei Parametern"Es wird eindeutig eine Funktion mit einem Parameter bezeichnet, aber tatsächlich mit zwei Parametern ausgeführt. Grund: JS definiert zwei Funktionen mit demselben Namen, und der Name gehört nur zu der später definierten Funktion! ! ! Es gibt also keine Überladungsfunktion in JS.
Der Funktionsname ist ein Zeiger:
var fun = function (num1, num2) {return num1+num2;}; var new_fun = fun; Fun = null; // Die Funktion auf nullconsole.log (new_fun (10,20)) festlegen; // Ausgabe: 30console.log (Fun (10,20)); // Ausnahme: Spaß ist keine FunktionEs ist zu sehen, dass zwar Spaß = null; vor diesem var new_fun = fun; Das heißt, der Zeiger zeigte auch auf new_fun, sodass die Funktion new_fun () weiterhin ausgeführt werden kann und die Funktionsbehörde nicht null ist
Funktionen können auch als Werte verwendet werden:
Funktion add (Fun, num) {return fun (num);} Funktion add_10 (num) {return num+10;} console.log (add_10,200)); // Ausgabe: 210Es kann wie folgt erklärt werden:
Funktion add (Funktion, Parameter) {Rückgabefunktion (übergebener Parameter);};Die Argumente.Callee der Funktion
Hier ist ein rekursives Beispiel
Funktion fun (num) {if (num <= 1) {console.log (num); Rückkehr 1; } else {console.log (num); return num * argumente.callee (num-1); }} console.log (fun (3)); // Ausgabe 6