[英]Why does javascript not allow an anonymous function with no assignment?
“意外令牌(從第1行拋出。為什么?
function (a,b,c) {
// code
}
Techfoobar本質上是正確的,另一種解釋方式是FunctionDeclaration必須具有名稱,而在FunctionExpression中 ,名稱是可選的。
兩者有什么區別? 函數聲明是任何以保留字function
開頭的語句 。 所以:
function foo() {}
是一個函數聲明。
函數表達式類似於聲明,但是它出現在語句中除start之外的任何位置,因此:
(function (){});
var x = function(){};
if (6 != function(){return 'foo';}()){}
都是函數表達式,不需要名稱。
因為存在語法錯誤。 您的函數沒有名稱。
如果要按照您的操作方式定義函數,則必須具有一個名稱。
要進行檢查,請將代碼粘貼到Firebug控制台中並執行。 你會得到錯誤
SyntaxError:函數語句需要一個名稱
您可以通過給函數命名來更正它。
例如:
function foo(blah) {
...
}
對於在全局范圍內定義的匿名函數,您要么需要將其分配給某個對象,要么需要立即執行它。
即
要么
var x = function(blah) {
...
};
要么
(function(blah) {
...
})(arguments);
因為否則絕對不可能調用它們。
函數語句中缺少名稱。 用jslint
檢查
嘗試
function tdip() {
var ts = tdip.find('>span');
var trap = [];
ts.contents().each(
function () {
if ($(this).is(':visible')) {
if (this.nodeType == 3 && this.data.length > 0) {
trap.push(this.data.trim());
} else if ($(this).text && $(this).text().length > 0) {
trap.push($(this).text().trim());
}
}
});
return trap.join('');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.