以下两者之间有什么区别(如果有的话)
$('.title').click(e => {
do_something();
});
和这个:
$('.title').click(function(e) {
do_something();
});
答案 0 :(得分:4)
这是相同的,但是此箭头功能是一种新语法,表示来自es6。
请参考MDN以获取有关箭头功能的更多信息:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
箭头功能(也称为“胖箭头功能”)无疑是ES6最受欢迎的功能之一。他们介绍了一种编写简洁函数的新方法。
这是用ES5语法编写的函数:
function timesTwo(params) {
return params * 2
}
现在,这是表示为箭头功能的相同功能:
var timesTwo = params => params * 2
要短得多!由于隐式的返回值,我们能够省略花括号和return语句(但前提是没有任何代码块,请参见下文)。
重要的是要了解箭头功能与常规ES5功能相比的行为方式不同。
没有参数
如果没有参数,则可以在=>之前放置一个空括号。
() => 42
实际上,您甚至不需要括号!
_ => 42
单个参数
使用这些功能,括号是可选的:
x => 42 || (x) => 42
多个参数
这些功能需要括号:
(x, y) => 42
声明(而不是表达式) 在最基本的形式中,函数表达式产生一个值,而函数语句执行一个动作。
使用箭头功能,重要的是要记住语句需要使用花括号。花括号出现后,您总是也需要写return。
以下是与if语句一起使用的箭头函数的示例:
var feedTheCat = (cat) => {
if (cat === 'hungry') {
return 'Feed the cat';
} else {
return 'Do not feed the cat';
}
}
“方块” 如果您的函数在一个块中,则还必须使用显式的return语句:
var addValues = (x, y) => {
return x + y
}
对象文字
如果要返回对象文字,则需要将其包装在括号中。这迫使解释器评估括号内的内容,并返回对象文字。
x =>({ y: x })
jQuery的另一件事。您最好使用.on
的{{1}}
有关更多信息,请参考:
Difference between .on('click') vs .click()