簡體   English   中英

為什么javascript不允許無分配的匿名函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM