javascript - eliminar - ¿Cómo funciona esta definición de método de objeto sin la palabra clave "función"?
eliminar elemento de un objeto javascript (2)
Descubrí esto dejando accidentalmente la palabra clave de
function
.
Normalmente, el método
foobar
en el módulo a continuación se declararía como
foobar: function(arg1)
, pero curiosamente, lo siguiente funciona, al menos en algunos navegadores, por ejemplo, Chrome Versión 44.0.2403.157 m, pero falla en IE 11.0.9600.17959
¿Cómo es posible que esto se ejecute en cualquier navegador? ¿Es esta una especie de nueva funcionalidad de ES6?
var module = {
foobar(arg1) {
alert(arg1);
}
};
module.foobar("Hello World");
¿Cómo es posible que esto se ejecute en cualquier navegador? ¿Es algún tipo de nueva funcionalidad ES6?
...
Definiciones de métodos
Una propiedad de un objeto también puede referirse a una función o un método getter o setter.
var o = { property: function ([parameters]) {}, get property() {}, set property(value) {}, };
En ECMAScript 6, está disponible una notación abreviada, de modo que la palabra clave "función" ya no es necesaria.
// Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
...
ES6 permite "métodos concisos" que, como has descubierto, aún no son compatibles con los navegadores cruzados.