function foo(bar) {
// ...
}
foo = function(bar) {
// ...
};
什麼爲一比其它的好處?我在後者看到的主要好處是不會遇到錯誤,並且已經定義了函數名稱。但是,可能還有其他不明顯的優點或缺點。他們是什麼(如果有的話)?
function foo(bar) {
// ...
}
foo = function(bar) {
// ...
};
什麼爲一比其它的好處?我在後者看到的主要好處是不會遇到錯誤,並且已經定義了函數名稱。但是,可能還有其他不明顯的優點或缺點。他們是什麼(如果有的話)?
這已經被問了幾次,this似乎是最好的之一。
還有其他的東西,你可以用比它賦值給一個變量之外的匿名函數做。你可以立即執行它:
(function() { ... })();
這有時用於爲代碼創建一個範圍。在範圍內聲明的東西是當地的微博,你可以將結果返回到外部代碼:
var a = (function() {
var answer = 42;
function display() { window.alert(answer); };
return display;
})();
現在變量a
包含顯示變量answer
的值的函數,但是變量answer
是本地的到的範圍:
a(); // displays the value
display(); // not available
window.alert(answer); // not available
此圖案例如用於爲jQuery的創建的插件:
(function($) {
$.fn.blackText = function() {
return this.css('color', '#000');
};
}(jQuery);
的jQuery
對象發送到範圍爲$
參數,這樣,在範圍代碼可以使用,即使它已被關閉的$
快捷方式(使用noConflict
)的範圍之外。