Quelles sont les différences (le cas échéant) entre ES6 flèche fonctions et les fonctions liées à la Fonction.le prototype.lier?

Il me semble que, dans l'ES6, les deux fonctions suivantes sont très près de identiques:

function () {
  return this;
}.bind(this);

() => {
  return this;
};

Au final, le résultat semble le même: flèche de fonctions produisent une fonction JavaScript objet this contexte lié à la même valeur que la this où ils sont créés.

Évidemment, dans le sens général, Function.prototype.bind est plus flexible que la flèche fonctions: il peut se lier à des valeurs autres que les locaux this, et il peut se lier n'importe quelle fonction du this à n'importe quel point dans le temps, potentiellement longtemps après qu'elle a été initialement créé. Cependant, je ne suis pas demandant comment bind elle-même est différente de la flèche fonctions, je me demande comment flèche fonctions diffèrent immédiatement appelant bind avec this.

Est-il des différences entre les deux concepts dans l'ES6?

  • Avec bind vous créez essentiellement deux fonctions. Autre que cela, les choses que vous avez mentionnées et le fait que la flèche fonctions ont une syntaxe plus concise, il n'y a pas de différence.
  • Comme cette question ne cherche pas et il est des réponses n'offrent pas toutes les fois où vous avez une bonne raison d'utiliser bind sur une flèche de la fonction, j'ai posé une nouvelle question sur le moment de le faire: runkit.com/embed/yhv29j5sybvn
  • Double Possible de Flèche en fonction de vs déclaration de fonction / expressions: Sont-ils équivalent / échangeables?
  • Dans le bind version, il retourne une nouvelle fonction qui applique en partie les arguments de bind . La flèche n'a pas this afin que l'utilisation de c'est comme toute variable libre d'une plus haute portée.
InformationsquelleAutor Alexis King | 2015-09-12