ES6如果在箭头功能

时间:2016-04-18 04:59:02

标签: ecmascript-6

为什么

$(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('click'));

不起作用?我得到了SyntaxError:Unexpected token if if

$(input).on('keypress', e=> { if (e.which == 13) $(btn).trigger('click'); });工作正常

2 个答案:

答案 0 :(得分:0)

第一种语法

$(input).on('keypress', e=> if (e.which == 13) $(btn).trigger('click'));

相当于

$(input).on('keypress', function (e) {
    return if (e.which == 13) $(btn).trigger('click')
    ^^^^^^
});

由于这不是有效的语法,因此会抛出错误。

虽然,第二个代码语法

$(input).on('keypress', e => {
    if (e.which == 13) $(btn).trigger('click');
});

是正确的,因此它有效。

当函数体包含多个语句时,我建议不要使用箭头函数语法。

答案 1 :(得分:0)

你可以使用逻辑和if条件的简写

$(input).on('keypress', e => (e.which == 13) && $(btn).trigger('click'));