Maison > interface Web > js tutoriel > Quelques petites connaissances sur ce mot-clé dans les compétences Javascript_javascript

Quelques petites connaissances sur ce mot-clé dans les compétences Javascript_javascript

WBOY
Libérer: 2016-05-16 16:09:26
original
1318 Les gens l'ont consulté

Javascript devrait être l'un des langages multiplateformes les plus populaires actuellement. J'ai joué avec des choses intéressantes sur le front-end, mais j'ai constaté que je ne maîtrisais pas bien ce langage. C'est un peu une perte de temps, donc je veux profiter du temps libre maintenant pour ajouter quelques éléments manquants.

Liaison implicite de ceci

C’est quelque chose qui m’a dérouté au début. Quand je l’ai vu pour la première fois, je ne l’ai pas compris. Ensuite, dans des situations similaires, des méthodes similaires peuvent être utilisées pour résoudre le même problème. J’ai donc essayé de trier les connaissances et de les rendre plus faciles à trouver.

Il s'agit d'une erreur de conception dans le langage Javascript, mais il semble que cette erreur soit inévitable. Les fonctions sont des objets, les tableaux sont des objets, etc. Citant des exemples de "Javascript : les bonnes pièces"

Copier le code Le code est le suivant :

fonction ajouter (a,b) {retourner un b}
var somme = ajouter (3,4);
console.log(somme); //somme = 7

Le résultat de la somme à ce moment est 7.

Copier le code Le code est le suivant :

> type d'ajout
> 'numéro'

Comme vous pouvez le voir ici, le type d'ajout est numérique.

Lors de l'appel d'une fonction dans ce mode, celle-ci est liée à une variable globale.
Autrement dit, dans l'environnement actuel, nous pouvons appeler cela
comme ça

Copier le code Le code est le suivant :

this.add(3,4)

C'est la liaison implicite de ceci, et cela sera lié de différentes manières.
Copier le code Le code est le suivant :

var bonjour = fonction (){
Renvoyez "Bonjour", this.name;
};
nom = 'ceci';
console.log(bonjour());

À ce moment-là, nous recevrons Bonjour, ceci. Et quand
Copier le code Le code est le suivant :

var bonjour = fonction (){
Renvoyez "Bonjour", this.name;
};
var utilisateur = {
Bonjour : bonjour,
Nom : 'phodal',

};
console.log(user.hello());


À l'heure actuelle, le bonjour dans l'utilisateur pointe vers la fonction bonjour. D'après notre compréhension, comment est-ce possible, c'est donc un bug.

Si nous définissons une variable dans cette méthode et lui attribuons la valeur this, alors la fonction interne peut y accéder via cette variable.

var ça = ceci

Alors quand la situation est un peu plus compliquée, il faut utiliser :

Copier le code Le code est le suivant :

cuve ça = ceci ;

conseils :

1.La portée de cette variable est toujours déterminée par sa fonction englobante la plus proche.
2. Utilisez une variable locale (telle que moi, moi-même, cela) pour rendre cette liaison disponible en interne.

Un exemple simple :

Copier le code Le code est le suivant :

var M = fonction(){
This.name = "M";
};

var MM = fonction(){
z = nouveau M();
This.name = "MM";

z.printName = function(){
console.log(this.name);
};
Renvoie z.printName();
};

var mm = nouveau MM;


Pour le moment, cela pointe vers la fonction M, et non vers MM lui-même. Si nous supprimons cela dans M, alors la valeur renvoyée n'est pas définie. On crée donc un alias du courant de cette portée, comme ça ou soi, etc. :
Copier le code Le code est le suivant :

var MM = fonction(){
z = nouveau M();
This.name = "MM";
var soi = ceci;
z.printName = function(){
          console.log(self.name);
};
Renvoie z.printName();
};

Cela renverra un MM. De plus, dans ES5, vous pouvez utiliser la méthode bind de la fonction de rappel.

Copier le code Le code est le suivant :

var MM = fonction(){
z = nouveau M();
This.name = "MM";
z.printName = function(){
console.log(this.name);
}.bind(this);
Renvoie z.printName();
};

bind peut lier une méthode à un récepteur.

Autres

Un autre bonjour le monde

J'ai rencontré print('Hello')('World') par hasard, puis j'ai affiché 'Hello, World'.

Les fonctions dites d'ordre supérieur semblent très utiles. Si vous êtes intéressé, vous pouvez lire le article suivant.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal