0

我有以下电话:

 $.extend($.fn.dataTableExt.oSort, {
        "datetime-uk-pre": function (a) {
            from = a.split(' ');
            var ukDatea = from[0].split('/');
            var ukTimea = from[1].split(':');
            return (ukDatea[2] + ukDatea[1] + ukDatea[0] + ukTimea[1] + ukTimea[0]) * 1;
        }

有人可以解释“from =”在这里做什么。我注意到,当我运行 JSHint 时,它告诉我“来自”没有定义。

4

4 回答 4

5

有人可以解释“from =”在这里做什么。

它正在为一个名为的变量赋值from

我注意到,当我运行 JSHint 时,它告诉我“来自”没有定义。

看起来应该是var from =。(要么是这样,要么from是打算在更广泛的范围内使用,但在更广泛的范围内使用它看起来不像是一个有用的变量,如果是这样的话,var from;范围链上应该还有一个更高的变量)。

没有var你创建一个全局变量。

于 2012-11-13T06:57:45.463 回答
0

看起来就像这里只是一个变量

from = a.split(' ');

可以在当前函数范围之外访问,这是一个数组..

于 2012-11-13T06:52:54.410 回答
0

这只是一个变量。from在 JavaScript 中没有什么特别之处。var from如果他们使用了正确的编码实践,它可能会在某个地方声明。尝试搜索该字符串。

如果 JSHint 抱怨它,它可能没有正确声明。var from = a.split(' ');作为最佳实践,您可能希望重写该行。

于 2012-11-13T06:57:47.120 回答
0

from只是一个变量的名称,就像上面代码中的ukDateaand一样ukTimea。在 JavaScript 中,如果您使用新变量名而不使用其前面的关键字var,则该变量将变为全局变量,这就是 JSHint 试图在它说from未定义时告诉您的内容。

它应该在代码中的其他地方定义(例如var from),或者您需要在var此处添加关键字,这将使该行看起来像这样:

var from = a.split(' ');
于 2012-11-13T07:02:13.860 回答