我进入了Firefox和Chrome浏览器开发控制台这个表达式,我不知道为什么它是有效的JavaScript:对象声明中的属性名称后面没有冒号,它有效吗?
var x = { a (b) {} };
console.log(x);
x
然后设置为与财产被称为“一”与“一”包含一个函数的对象参数标识符“b”。 这个有效的JavaScript语法如何? “a”之后冒号缺少,我不理解函数定义。
我进入了Firefox和Chrome浏览器开发控制台这个表达式,我不知道为什么它是有效的JavaScript:对象声明中的属性名称后面没有冒号,它有效吗?
var x = { a (b) {} };
console.log(x);
x
然后设置为与财产被称为“一”与“一”包含一个函数的对象参数标识符“b”。 这个有效的JavaScript语法如何? “a”之后冒号缺少,我不理解函数定义。
这是ES6/ES2015语法糖(Property shorthand)。 随着ES6:
const obj = {
a(b) {
// Shorthand method
// `this` context is `obj`
},
c
};
等于
var obj = {
a: function a(b) {
},
c: c
};
在JavaScript中,当你写:
var x = { a (b) {} };
它会认为它是:
var x = {
a: function (b) {
}
}
例如,你可以检查这个它会清除您的疑问:
var x = { a (b) { console.info('function called') } };
x.a();
这将调用分配给对象x
财产a
功能。
ES6简短对象符号 – vlaz
'x'是一个名为'a'的函数,它的参数名为'b' –