【发布时间】:2014-01-28 13:38:36
【问题描述】:
JSHint 告诉我局部变量 isInitOk 的值永远不会被读取。但仅当 $get 成功函数运行并使用方法公开时才会更新。
var my = function () {
var isInitOk = false;
function discoverSuccess(rsp) {
...
isInitOk = true;
}
function init() {
...
$.get(config.serverURL, discoverSuccess, 'json');
}
function assertInitOk() {
return isInitOk;
}
return {
assertInitOk: assertInitOk
};
}();
【问题讨论】:
-
你有没有打电话给
assertInitOk?您正在返回对函数的引用 - 而不是它的输出。 -
它不能算作阅读它,因为 javascript(技术上)在实际执行函数之前不知道
assertInitOk做了什么。 -
@h2ooooooo 它知道该函数的作用很好,只是不知道如何以及何时调用该函数以及引用它的名称。然而,所有这些都是无关紧要的,因为我们谈论的是 JSHint,它是一个适用于源代码的 static 分析器。
-
它是否专门指向第二行代码?将您提供的有限代码放入 jsHint 不会产生该消息。
-
它应该仍然看到该变量正在被使用。就像我说的,它没有给我这个信息。但是,如果我从函数中删除该变量引用,它会这样做。
标签: javascript jshint