JSlint - 在定义之前使用'function'

时间:2014-04-23 00:24:51

标签: javascript jslint

我刚开始使用JSlint来查看是否可以改进我的代码。它非常......迂腐但非常有用。

我目前遇到的问题是调用一个函数,但是jslint告诉我它还没有被定义。

该函数是一个简单的生成随机数函数,它存储在一个通用的“帮助文件”中。我不希望或看到需要将此函数复制到调用它的每个文件中,有点挫败了帮助文件的目的:)

还有别的东西让我失踪吗?我忍不住想到我犯了一个业余的错误,但看不出它。

此行显示错误:randomNum = random_num(layerDetails.length);

和random_num函数简单:

function random_num($value) { $result = Math.floor(Math.random() * $value); return $result; }

感谢您的帮助。我希望jslint能给我清洁的健康状况。

1 个答案:

答案 0 :(得分:3)

你有一个全局函数,它也是一个全局变量。全局通常是一件坏事,因为它们占用你的命名空间并导致命名冲突。

如果您不担心,您可以通过在每个文件的顶部添加以下注释来让JSLint知道您正在使用哪些全局:

/*globals random_num, $ */

我已添加$以证明您可以提供全局变量列表。

但是,由于您使用的是节点I,建议将其添加到Utils模块中。 JSLint不会抱怨,因为您将使用var声明模块。

utils.js

module.exports = {
  random_num: function random_num($value) {
    $result = Math.floor(Math.random() * $value);
    return $result;
  }
};

其他地方:

var utils = require('./utils');
utils.random_num();