Cette question plonge dans un extrait de code intrigant qui définit un méthode objet sans utiliser le mot-clé "function". Comprendre cette syntaxe nécessite de se plonger dans l'introduction par ES6 d'une notation abrégée pour définir les méthodes.
Pourquoi l'extrait de code suivant fonctionne-t-il dans certains navigateurs, malgré l'omission du mot-clé « function » ?
var module = { foobar(arg1) { alert(arg1); } }; module.foobar("Hello World");
La réponse réside dans l'introduction par ES6 d'une notation abrégée pour définir les méthodes objet. Selon la spécification ECMAScript 2015 :
"Une propriété d'un objet peut également faire référence à une fonction ou à une méthode getter ou setter."
var o = { property: function ([parameters]) {}, get property() {}, set property(value) {}, };
ES6 a introduit une notation abrégée qui supprime le nécessité du mot-clé "fonction":
// Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
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!