Baseline Widely available
ÐаÑÐ¸Ð½Ð°Ñ Ñ ECMAScript 6, ÑÑÑеÑÑвÑÐµÑ ÐºÐ¾ÑоÑкий ÑинÑакÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼ÐµÑодов в иниÑиализаÑоÑе обÑекÑа. Ðо ÑÑÑи, ÑÑо ÑокÑаÑение Ð´Ð»Ñ ÑÑнкÑии, коÑоÑÐ°Ñ Ð½Ð°Ð·Ð½Ð°Ñена имени меÑода.
СинÑакÑиÑvar obj = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };ÐпиÑание
ÐоÑоÑкий ÑинÑакÑÐ¸Ñ Ð¿Ð¾Ñ Ð¾Ð¶Ð¸Ð¹ на ÑинÑакÑÐ¸Ñ getter'ов и setter'ов пÑедÑÑавленнÑÑ Ð² ECMAScript 5.
СледÑÑÑий код:
var obj = {
foo: function () {},
bar: function () {},
};
ÐÑ ÑепеÑÑ Ð¼Ð¾Ð¶ÐµÑе ÑокÑаÑиÑÑ Ð´Ð¾:
var obj = {
foo() {},
bar() {},
};
СокÑаÑение меÑодов-генеÑаÑоÑов
ÐеÑодÑ-генеÑаÑоÑÑ Ñакже могÑÑ Ð±ÑÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð¸ÑполÑзÑÑ ÐºÐ¾ÑоÑкий ÑинÑакÑиÑ. ÐбÑаÑиÑе внимание, ÑÑо звÑздоÑка (*) в коÑоÑком ÑинÑакÑиÑе должна бÑÑÑ Ð¿ÐµÑед именем ÑвойÑÑва генеÑаÑоÑа. То еÑÑÑ, * g(){}
бÑÐ´ÐµÑ ÑабоÑаÑÑ, а g *(){}
не бÑдеÑ.
// ÐÑполÑзÑÑ ÑвойÑÑво Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ (pre-ES6)
var obj2 = {
g: function* () {
var index = 0;
while (true) yield index++;
},
};
// Ð¢Ð¾Ñ Ð¶Ðµ обÑÐµÐºÑ Ð¸ÑполÑзÑÑ ÐºÐ¾ÑоÑкий ÑинÑакÑиÑ
var obj2 = {
*g() {
var index = 0;
while (true) yield index++;
},
};
var it = obj2.g();
console.log(it.next().value); // 0
console.log(it.next().value); // 1
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼ÐµÑодов (ES6) не могÑÑ Ð±ÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑами
ÐÑе опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼ÐµÑодов кÑоме меÑодов-генеÑаÑоÑов не могÑÑ Ð±ÑÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑами и бÑдÑÑ Ð²ÑбÑаÑÑваÑÑ TypeError
еÑли Ð²Ñ Ð¿Ð¾Ð¿ÑÑаеÑеÑÑ ÑоздаÑÑ Ð¸Ñ
ÑкземплÑÑ.
var obj = {
method() {},
};
new obj.method(); // TypeError: obj.method is not a constructor
var obj = {
*g() {},
};
new obj.g(); // ÐенеÑаÑоÑ
ÐÑимеÑÑ ÐÑоÑÑой ÑеÑÑовÑй пÑимеÑ
var obj = {
a: "foo",
b() {
return this.a;
},
};
console.log(obj.b()); // "foo"
ÐÑÑиÑлÑемÑе имена ÑвойÑÑв
ÐоÑоÑкий ÑинÑакÑÐ¸Ñ Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²ÑÑиÑлÑемÑе имена ÑвойÑÑв.
var bar = {
foo0: function () {
return 0;
},
foo1() {
return 1;
},
["foo" + 2]() {
return 2;
},
};
console.log(bar.foo0()); // 0
console.log(bar.foo1()); // 1
console.log(bar.foo2()); // 2
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4