Maison >interface Web >js tutoriel >Les méthodes d'objet ES6 peuvent-elles être définies sans le mot-clé « fonction » ?

Les méthodes d'objet ES6 peuvent-elles être définies sans le mot-clé « fonction » ?

DDD
DDDoriginal
2024-12-04 21:51:111099parcourir

Can ES6 Object Methods Be Defined Without the

Définition de méthode sans mot clé « Fonction » : une fonctionnalité ES6

Dans cet article, nous nous plongeons dans une observation inhabituelle : l'exécution réussie de une méthode objet sans le mot-clé "function". Ce comportement curieux a été rencontré dans certains navigateurs, nous laissant réfléchir sur ses origines et ses implications.

La définition de la méthode objet en question est :

var module = {
    foobar(arg1) {
        alert(arg1);
    }
};

Dans la syntaxe JavaScript traditionnelle, cette méthode serait déclaré comme :

foobar: function(arg1) {}

Cependant, l'omission de « fonction » dans ce cas a soulevé des questions sur sa compatibilité et sa connexion potentielle à ES6 fonctionnalité.

Réponse

Oui, cette définition de méthode est une conséquence de la nouvelle syntaxe d'ES6 pour les méthodes objet. Dans ES6, une notation abrégée permet des définitions de méthodes plus concises sans le mot-clé « function ». Ceci est réalisé grâce à l'utilisation de fonctions fléchées, qui offrent une alternative simplifiée aux fonctions traditionnelles.

La spécification ECMAScript 6 indique ce qui suit concernant les définitions de méthode :

A property of an object can also refer to a function or a getter or
setter method.

var o = {
  property: function ([parameters]) {},
  get property() {},
  set property(value) {},
};

In ECMAScript 6, a shorthand notation is available, so that the
keyword "function" is no longer necessary.

// Shorthand method names (ES6)
var o = {
  property([parameters]) {},
  get property() {},
  set property(value) {},
  * generator() {}
};

Par conséquent, la définition de méthode sans « fonction » est une syntaxe ES6 valide prise en charge par certains navigateurs. Cependant, comme indiqué dans la question initiale, cette fonctionnalité peut ne pas être universellement compatible avec les différentes versions de navigateur.

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