Maison  >  Article  >  interface Web  >  Une explication du format et de celui des fonctions fléchées en js et la différence avec les fonctions ordinaires

Une explication du format et de celui des fonctions fléchées en js et la différence avec les fonctions ordinaires

不言
不言original
2018-09-10 17:24:482870parcourir

Le contenu de cet article concerne le format et cela des fonctions fléchées en js et la différence avec les fonctions ordinaires. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Format de la fonction flèche

// ES5
var selected = allJobs.filter(function (job) {
  return job.isSelected();
});

// ES6 箭头函数
var selected = allJobs.filter(job => job.isSelected());

// ES6
$("#confetti-btn").click(event => {
  playTrumpet();
  fireConfettiCannon();
});

1. Pour écrire une fonction avec plusieurs paramètres (ou sans paramètres ni valeurs par défaut ni paramètres déstructurés), ajoutez des parenthèses autour de la liste des paramètres.
2. Les fonctions fléchées avec des blocs ne renverront pas automatiquement les valeurs. Veuillez utiliser la déclaration de retour.
3. Il y a une chose à noter lorsque vous utilisez des fonctions fléchées pour créer des objets ordinaires. Mettez toujours les objets entre parenthèses :

cela pointe vers

Les fonctions fléchées n'ont pas leur propre valeur this. Les valeurs à l'intérieur de ces fonctions fléchées sont toujours héritées de la portée englobante.

Pour les méthodes qui seront appelées à l'aide de la syntaxe object.method(), utilisez des fonctions non fléchées. Ces fonctions obtiendront une valeur this significative de la part de l'appelant. Tout le reste utilise des fonctions fléchées.

{
  ...
  addAll: function addAll(pieces) {
    var self = this;
    _.each(pieces, function (piece) {
      self.add(piece);
    });
  },
  ...
}

// ES6
{
  ...
  addAll: function addAll(pieces) {
    _.each(pieces, piece => this.add(piece));
  },
  ...
}

La différence entre les fonctions fléchées et les fonctions ordinaires

Il existe également une petite différence entre les fonctions fléchées et non fléchées : les fonctions fléchées n'ont pas leur propre objet arguments.

Fonctions ordinaires :
1. Lorsqu'une fonction est appelée en tant que fonction globale, cela pointe vers l'objet global
2. Lorsqu'une fonction est appelée en tant que méthode dans un objet, cela pointe vers. l'objet
3. Lorsqu'une fonction est utilisée comme constructeur, cela pointe vers le nouvel objet qui sort du constructeur new
4. Vous pouvez également modifier le point de ceci en appelant, en appliquant et en liant<.>

1. La fonction flèche n'a pas ceci, et ceci à l'intérieur de la fonction La fonction non-flèche la plus proche du parent, et ne peut pas changer la direction de celui-ci.

2. La fonction flèche n'a pas de super
3. La fonction flèche n'a pas d'arguments
4. La fonction flèche n'a pas de liaison new.target.
5. Impossible d'utiliser le nouveau
6. Aucun prototype
7. Les paramètres nommés en double ne sont pas pris en charge.

Recommandations associées :

Répondez à cette question dans la fonction flèche ES6

Explication détaillée de la fonction flèche JavaScript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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