我在Firefox和Chrome开发者控制台中输入了这个表达式,我想知道为什么它是有效的JavaScript:
var x = { a (b) {} };
console.log(x);
然后将 x
设置为具有属性" a"的对象。包含一个名为" a"带有参数标识符" b"。
这个有效的JavaScript语法怎么样? " a"我不明白功能定义。
答案 0 :(得分:33)
这是ES6 / ES2015的合成糖(Property shorthand)。 使用ES6:
const obj = {
a(b) {
// Shorthand method
// `this` context is `obj`
},
c
};
等于
var obj = {
a: function a(b) {
},
c: c
};
答案 1 :(得分:5)
在JavaScript中,当你写:
var x = { a (b) {} };
它会将其视为:
var x = {
a: function (b) {
}
}
例如,您可以查看此信息,这将清除您的疑问:
var x = { a (b) { console.info('function called') } };
x.a();
这将调用分配给对象a
的属性x
的函数。