为什么JSLint会抱怨某些东西是否使用了尚未定义的函数?关键是该函数已定义 - 如果该函数调用该函数,则该函数存在并且事情将起作用。
看看下面的代码:
function foo()
{
// calls bar()
};
function bar()
{
// calls foo()
};
没有办法以这样的方式组织这两种方法,这样可以使JSLint满意。我该如何处理这个问题?
答案 0 :(得分:16)
只需使用“latedef”属性并将其设置为“false”即可。如果你想要检测这些有问题的变量定义,但想要使用函数表达式并允许提升这些函数,你可以设置“latedef”:“nofunc”。
查看here。
答案 1 :(得分:14)
看到这个答案:
Contending with JS "used before defined" and Titanium Developer
基本上,如果您使用foo = function() { ... }
表单,则可以在顶部声明var foo, bar;
以避免JSLint错误。
答案 2 :(得分:0)
我刚刚处理了一个与此非常相似的问题,问题是我的脚本在函数调用之后就已经存在了,
$('#choice').change(function() {
var value = $(this).val().toLowerCase();
$("#dt-answer tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
})
所以我将函数调用放在脚本之后,它解决了这个问题,所以基本来说,我现在几天都看不到答案了,所以尝试一下
function zzzzz () {
aaaaa();
ccccc();
}
function aaaaa() {
blah = bla blah blah;
}
function bbbbb() {
blah = bla blah blah;
}
function ccccc() {
blah = bla blah blah;
}
好运,希望对您有帮助