【问题标题】:JSLint - ignore missing function name [closed]JSLint - 忽略缺少的函数名称
【发布时间】:2013-04-27 00:51:20
【问题描述】:

我正在尝试使用 JSLint 评估匿名 JavaScript 函数。但是,JSLint 无法评估它,因为该函数缺少名称。我可以设置什么选项来允许 JSLint 忽略该错误?

类似:

function(test) {
    return;
}

结果:

Missing name in function statement.
function(test) {

编辑:为了澄清,匿名函数将用作 CouchDB 的视图。我想确保语法在它到达数据库之前是正确的。

【问题讨论】:

  • 这不仅仅是一个 jsLint 问题。这是一个 SyntaxError,所以你的代码根本不会运行。如果您想就地调用它,请执行(function(test) { return; })(),尽管我不明白这一点。如果你不打算调用它,那么匿名函数就没有意义了。
  • 它确实有一点——查询将用作 CouchDB 的映射函数。我想在它到达数据库之前评估函数的语法。
  • 所以你说它不在程序中,但你只是想使用 jsLint 来验证它?如果是这样,那么为什么不给它一个名称或将它分配给一个变量呢?您不能指望验证器对它只能视为损坏的代码视而不见。
  • 分配给一个变量将是最好的选择。至于您的最后一条评论,我希望它假设 JSLint 将允许匿名函数,当我可以在 JSLint 为 CouchDb 假设的选项中设置 couch: true 时。
  • 该选项仅定义将在 CouchDB 环境 AFAIK 中找到的全局变量。语法验证器在其他方面是相同的。

标签: javascript jslint


【解决方案1】:

您可以使用以下技术之一使 JavaScript 函数成为非匿名函数:

  1. 给函数起个名字:

    function myFunction(test) {
        return;
    }
    
  2. 将函数赋值给一个变量:

    var myFunction = function(test) {
        return;
    }
    
  3. 事实上,您可以将这两种方法结合起来,但我不建议这样做:

    var myFunction = function myFunction(test) {
        return;
    }
    

【讨论】:

  • 在 CouchDB 的情况下,我会假设第一个是唯一有效的解决方案,因为当函数(有效)分配给变量时。
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2011-12-10
  • 2013-09-07
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多