【问题标题】:JSlint error selectedDate already definedJSlint 错误 selectedDate 已定义
【发布时间】:2012-08-14 19:59:24
【问题描述】:

当我在这段代码上运行 JSlint 时,我得到了这个错误

错误:第 25 行字符 26 处的问题:'selectedDate' 已经存在 定义。 var selectedDate = new Date(selectedDate);

隐含全局:$ 1,4,13,14,26,27,28,31,33,34,42,updateSelects 13,19,21

http://jsfiddle.net/bzPYg/

我认为是指这段代码

'dateSelected', function(e, selectedDate, $td, state) {
    updateSelects(selectedDate);

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: javascript jslint


    【解决方案1】:

    这种错误可以自行解释。

    第 25 行字符 26 处的问题:“selectedDate”已定义。 var selectedDate = new Date(selectedDate);

    您正在再次声明变量 selectedDate,并且您正在用一个新的 Date 对象填充它,该对象采用原始变量 selectedDate 的值。您应该将变量重命名为其他名称。

    var date = new Date(selectedDate);
    

    请注意这里发生的错误:

    var updateSelects = function(selectedDate) {
       var selectedDate = new Date(selectedDate);
       ...
    });
    

    【讨论】:

    • 这被称为 variable shadowingthis answer 给出了一个不错的解释。
    • 感谢我将 slectedDate 更改为 selectDate 并且 JSlint 不再给我任何错误。所以谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2010-10-22
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多