爲什麼不使用函數聲明,但它的工作完美使用函數表達式? 假設唯一的區別是瀏覽器如何將它們加載到執行上下文中。爲什麼我不能在JQuery的事件處理函數中將「函數聲明」作爲參數傳遞?
function foo(event){
console.log('in foo');
}
$('.btn').on('click',foo(event));
$.ajax({
beforeSend:function(){
$('btn').unbind('click');
},
success: function(){
$('btn').bind('click', foo(event));
}
});
隨着函數表達式它的偉大工程:
var foo = function(event){
console.log('in foo');
}
你會意識到,'FOO(事件)'調用函數,並傳遞返回值('undefined')爲'.bind'? – Jon
不是因爲遵循這個:http://stackoverflow.com/a/336868/2326828,foo(event)在「代碼區域」(在程序執行之前)中聲明的不是嗎? – Pompeyo