-1

“意外令牌(”从第 1 行抛出。为什么?

function (a,b,c) {
        // code    
    } 
4

3 回答 3

4

Techfoobar 本质上是正确的,另一种解释方式是FunctionDeclaration必须有名称,而在FunctionExpression中名称是可选的。

两者有什么区别?函数声明是以保留字开头的任何语句function。所以:

function foo() {}

是一个函数声明。

函数表达式类似于声明,但它出现在除 start 之外的语句中的任何位置,因此:

(function (){});
var x = function(){};
if (6 != function(){return 'foo';}()){}

都是函数表达式,不需要名称。

于 2013-03-01T05:37:03.400 回答
3

因为有语法错误。您的函数没有名称。

如果要按照您所做的方式定义您的函数,则它必须有一个名称。

要检查这一点,请将您的代码粘贴到 Firebug 控制台并执行它。你会得到错误

SyntaxError:函数语句需要名称

您可以通过为函数命名来更正它。

例如:

function foo(blah) {
    ...
}

对于在全局范围内定义的匿名函数,您要么需要将其分配给某个东西,要么需要立即执行它。

IE

任何一个

var x = function(blah) {
    ...
};

或者

(function(blah) {
    ...
})(arguments);

因为否则绝对不可能调用它们。

于 2013-03-01T05:08:56.347 回答
0

函数语句中缺少名称。检查它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('');
}
于 2013-03-01T05:12:25.403 回答