可能重复:
Javascript: var functionName = function() {} vs function functionName() {}
你会这样做的原因是什么:
somename = function(param1, param2) { }
而不是做:
function somename(param1, param2) { }
答案 0 :(得分:3)
好了,因为第一种语法是一个变量声明,而第二种语法是一个实际的函数声明,我会坚持第二种,除非我真的需要第一种。
尝试阅读范围和变量提升,你会发现第二种语法有时会给你带来麻烦:)
http://www.dustindiaz.com/javascript-function-declaration-ambiguity/
http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting
顺便说一下,你可能想要浏览这个帖子并寻找更多好东西: var functionName = function() {} vs function functionName() {}
答案 1 :(得分:1)
$fn = function(param1, param2)
通过使用上面的表单,您可以将$ fn作为参数传递给任何函数,或者您可以从中创建一个新对象:
function doSomethingWithFn($fn);
或
$fnObject = new $fn(param1, param2)
当您只需要实用程序功能或闭包时,您可以使用第二种形式:
function utilityFn(str) {
return str.indexOf('a')
}
var str = utilityFn('abc');
或
$('#element').click(function() {
utiliyFn($('#element').html())
})
答案 2 :(得分:0)
第一种方法创建一个函数对象,然后可以将其作为参数传递给其他函数。例如,如果要在文本框值更改时执行某些代码,可以设置这样的回调(使用jQuery):
var onChange = function() { /* ... */ }
$("#username").change(onChange);