javascript - 函数在定义之前被使用 - JSLint

标签 javascript jslint

JSLint 不喜欢这段代码说“‘b’在定义之前就被使用了”

var a = function () {
        b();
    },

    b = function () {
        alert("Hello, world!");
    };

a();   

但对此非常满意

var a, b;

a = function () {
    b();
};

b = function () {
    alert("Hello, world!");
};

a();   

但我没有在我的第二个代码片段中定义任何东西。我只是声明变量 b。

那么为什么 JSLint 这样做呢?有没有理由我应该首先声明我的所有功能?

PS 我知道我可以改变 a 和 b 的顺序,但在实际项目中我的函数是事件处理程序,有时它们会相互调用,所以这可能是不可能的。

最佳答案

如果您的代码编写得很好并且是面向对象的,则可以在使用它们之前声明您的函数。但是 JSLint 设置了许多标准,这些标准实际上与您的应用程序的功能几乎没有关系,而且我真的怀疑以这种或另一种方式声明函数是否会对性能产生任何影响。

关于javascript - 函数在定义之前被使用 - JSLint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963161/

相关文章:

javascript - 如何根据选择的 radio 更改隐藏文件的值

javascript - 如何向 Konva 生成的 Canvas 添加 id?

javascript - 由于 undefined variable ,JSLint 文件失败

javascript - 如何在 Windows 版 emacs 中将 jslint 作为 javascript 编译工具运行?

javascript - Emacs:在 etags 中查找函数定义

javascript - 为什么 __proto__ 未定义?

javascript - 从 OpenShift Mongodb 保存文档

javascript - 将 'var' 声明移至函数顶部 - Javascript 错误

javascript - 如何在不使用 for 循环的情况下迭代数组的一部分

javascript - AngularJS:使用拦截器更新 token (使用服务)