Après avoir appris les langues traditionnelles orientées objet, comme Java C ++, je suis un peu inconfortable lorsque je transfère à JavaScript, en particulier la fonction dite objet en JavaScript, que parfois je suis confus. J'ai donc simplement trié des choses conceptuelles ci-dessous pour faciliter l'apprentissage et la compréhension, et je les expliquerai en combinaison avec des connaissances axées sur les objets Java.
Comprenons d'abord quelques concepts:
1. Tout d'abord, à quoi l'objet se réfère-t-il dans ECMAScript? Il existe 5 types de données simples dans ECMAScript: Undefined, Null, Boolean, Number, String. Il existe également un type de données complexe, c'est-à-dire un objet.
2. Type de référence - Le concept de classe en Java
Valeur du type de référence --- Le concept d'objets en Java
3. Fonctions ---- Le concept de méthodes en Java
4.Var --- déclare un opérateur d'une variable. Étant donné que la variable JS est de type lâche, lâche signifie qu'elle peut être utilisée pour enregistrer toutes les données. La variable est uniquement utilisée pour représenter un espace réservé, donc la variable n'a pas à spécifier la chaîne, l'int et simplement Var. Notez que l'objet peut être déclaré avec VAR.
5.Object (), ce qui est --- Le constructeur de l'objet en java, le constructeur de l'objet en js.
Objet
JS peut ajouter dynamiquement des propriétés et des méthodes.
Par exemple, créer une instance d'objet
var obj = new Object();
La variable obj est l'objet de New Object ().
Suivant:
var obj = nouveau objet (); obj.name = 'zeng'; obj.age = 12; obj.fun = function () {console.log (this.name + this.age);}Mais ce n'est pas une encapsulation très
var obj = {name: 'zeng', âge: 12, fun: function () {console.log (this.name + this.age); }} obj.fun (); // Imprimer: zeng12Accès aux propriétés des objets:
1. Utilisez des supports
console.log(obj["name"]);
2. Points d'utilisation, il est recommandé d'utiliser cette méthode
console.log(obj.name );
fonction
Les fonctions sont une partie importante de toute langue. Les fonctions sont appelées js. Vous pouvez également comprendre que ce sont les méthodes Java et les fonctions du langage C, tout de même. Cependant, en termes de déclaration et d'utilisation, les fonctions de JS peuvent être très différentes.
Un exemple de fonction:
fonction fun () {return "example";} console.log (fun ()); // Sortie: «Exemple»C'est aussi possible:
var fun = function () {return "créer des fonctions à l'aide d'expressions"}; console.log (fun ()); // sortie: "Créer des fonctions à l'aide d'expressions"Dans l'exemple ci-dessus, vous remarquerez que la fonction n'a pas de nom de fonction, un seul nom de variable amusant, et il y en a un autre à la fin de l'expression; demi-colon,
Vous pouvez simplement le comprendre comme une expression qui déclare une variable. Déclarer d'autres variables est écrit comme ceci:
var name = "Zeng"; // il y a des noms de variables et des demi-finales
Prenons un exemple avec des paramètres:
fonction fun () {return arguments [0] + arguments [1] + arguments [2];} console.log (fun ("this is", "a", "exemple")); // Sortie: "Ceci est un exemple"N'est-ce pas un peu étrange? Tout d'abord, la fonction que j'ai créée n'a pas de paramètres. Il reçoit des paramètres lorsqu'ils sont appelés, et des paramètres peuvent être obtenus et renvoyés dans la fonction.
En fait, ici, nous devons faire valoir que la fonction JS ne se soucie pas de passer quelques paramètres, et il ne se soucie pas du type de paramètres! La raison en est que les paramètres de réception internes de la fonction sont stockés dans un tableau!
Le tableau est les arguments ci-dessus. Bien sûr, le tableau ne se soucie pas de passer quelques paramètres. S'il y a des paramètres, j'en ajouterai un, et s'il n'y a pas de paramètres, je vais nul.
Nous pouvons utiliser cette fonctionnalité comme exemple:
Surcharge des méthodes d'imitation - Utilisez différents paramètres pour effectuer différentes réactions
fonction fun () {if (arguments.length == 1) {return arguments [0] * 10; } if (arguments.length == 2) {return (arguments [0] + arguments [1]) * 10; } return 10;} console.log (fun (11,111)); // Retour 1220! ! ! !Pas de surcharge:
L'exemple ci-dessus est une surcharge de fonctions d'imitation. Pourquoi ai-je besoin de l'imiter? Je pourrai bientôt créer plusieurs fonctions avec différents paramètres.
Fonction Fun (num1) {return "Fun avec un seul paramètre"} fonction Fun (num1, num2) {return "Fun avec deux paramètres";} console.log (fun (11)); // Sortie "Fun avec deux paramètres"Il est clairement appelé une fonction avec un paramètre, mais il est en effet exécuté avec deux paramètres. Raison: JS définit deux fonctions avec le même nom, et le nom n'appartient qu'à la fonction définie plus tard! ! ! Il n'y a donc pas de fonctionnalité de surcharge dans JS.
Le nom de la fonction est un pointeur:
var fun = fonction (num1, num2) {return num1 + num2;}; var new_fun = fun; fun = null; // Définissez la fonction sur nullconsole.log (new_fun (10,20)); // Sortie: 30Console.log (Fun (10,20)); // Exception: le plaisir n'est pas une fonctionOn peut voir que bien que amusant = null; Avant ce var new_fun = fun; c'est-à-dire que le pointeur a également indiqué New_fun, de sorte que la fonction new_fun () peut toujours être exécutée, et le corps de fonction n'est pas annulé
Les fonctions peuvent également être utilisées comme valeurs:
fonction add (fun, num) {return fun (num);} fonction add_10 (num) {return num + 10;} console.log (add (add_10,200)); // Sortie: 210Il peut être expliqué comme suit:
fonction add (fonction, paramètre) {return function (paramètre passé);}Les arguments.Callee de la fonction
Voici un exemple récursif
fonction fun (num) {if (num <= 1) {console.log (num); retour 1; } else {console.log (num); return num * arguments.callee (num-1); }} console.log (fun (3)); // Sortie 6