对象中的匿名箭头函数
Anonymous arrow functions in objects
这个语法是如何工作的:
let foo = 0; // or 1
let bar = {
foo: foo || function (x) { return 'foo ' + x; }
};
// If foo is 0
bar.foo('bar'); // Returns 'foo bar'
// If foo is 1
bar.foo; // Returns 1
而这个没有:
let foo = 0; // or 1
let bar = {
foo: foo || (x) => { return 'foo ' + x; }
};
如果我尝试 运行 下面的示例,我会在控制台中收到 Malformed arrow function parameter list
错误。它如何 Malformed
,正确的语法是什么才能获得与顶部示例相同的功能?
问题是箭头函数不知道如何对参数进行分组。您应该将函数包装在括号中:
let foo = 1
let bar = {
foo: foo || (x => { return 'foo ' + x; })
};
有段时间没用js了,不过觉得
let bar = {
foo: foo || (x => { 'foo' + x })
};
应该做这份工作
问候
这个语法是如何工作的:
let foo = 0; // or 1
let bar = {
foo: foo || function (x) { return 'foo ' + x; }
};
// If foo is 0
bar.foo('bar'); // Returns 'foo bar'
// If foo is 1
bar.foo; // Returns 1
而这个没有:
let foo = 0; // or 1
let bar = {
foo: foo || (x) => { return 'foo ' + x; }
};
如果我尝试 运行 下面的示例,我会在控制台中收到 Malformed arrow function parameter list
错误。它如何 Malformed
,正确的语法是什么才能获得与顶部示例相同的功能?
问题是箭头函数不知道如何对参数进行分组。您应该将函数包装在括号中:
let foo = 1
let bar = {
foo: foo || (x => { return 'foo ' + x; })
};
有段时间没用js了,不过觉得
let bar = {
foo: foo || (x => { 'foo' + x })
};
应该做这份工作
问候