【问题标题】:JSHint: Why is the value of this local variable never read?JSHint:为什么这个局部变量的值永远不会被读取?
【发布时间】: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


【解决方案1】:

@cookiemonster 是正确的,不幸的是,这是 Eclipse 插件中的一个错误:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=351470

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多