/ / Jak działa ta definicja metody obiektu bez słowa kluczowego „funkcja”? - javascript, funkcja, metody, ecmascript-6, skrót

Jak ta definicja metody obiektu działa bez słowa kluczowego "function"? - javascript, funkcja, metody, ecmascript-6, stenografia

Odkryłem to, przypadkowo odrzucając function słowo kluczowe. Zwykle foobar metoda w module poniżej zostanie zadeklarowana jako foobar: function(arg1), ale co ciekawe, poniższe działa, przynajmniej w niektórych przeglądarkach, np. Wersja Chrome 44.0.2403.157 m, ale nie działa w IE 11.0.9600.17959

Jak to możliwe, że w ogóle działa w dowolnej przeglądarce? Czy to nowa funkcja ES6?

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

module.foobar("Hello World");

Odpowiedzi:

15 dla odpowiedzi № 1

Jak to możliwe, że w ogóle działa w dowolnej przeglądarce? Czy jest to jakaś nowa funkcja ES6?

tak.

...

Definicje metod

Właściwość obiektu może również odnosić się do funkcji lub gettera lub metoda ustawiania.

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

W ECMAScript 6 dostępna jest skrótowa notacja, dzięki czemu słowo kluczowe „funkcja” nie jest już konieczne.

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

...


4 dla odpowiedzi nr 2

ES6 na to pozwala „zwięzłe metody” które, jak już zauważyłeś, nie są jeszcze kompatybilne z różnymi przeglądarkami.