【发布时间】:2013-07-24 20:30:00
【问题描述】:
function wrapper() {
var $R = {};
$R.expandFont = function (direction, max_time) {
// wtf? $R jslint error
var self = this,
el_prim = self[0],
$R = {};
alert(direction + max_time + el_prim + $R);
};
}
这个 sn-p 给出错误:
line 573 character 13
'$R' is already defined.
我认为很明显之前没有定义过。
$R 是在外部范围内定义的,但这不应该是相关的。我应该能够定义一个与 JavaScript 同名的局部变量(语言)是函数范围的。是的,我知道它不是块作用域,而是函数作用域。
这是基本的范围规则。什么给了?
这是一个 jslint 错误吗?
【问题讨论】:
-
你在使用prototype.js吗?它定义了$R。如果省略此代码并在控制台中输入 $R 会发生什么?
-
当我通过 JS Lint 运行该代码时,它没有给我这个结果。
-
成功设置 $R.something = function(){...};必须定义 $R。
-
可能是因为你正在锯掉你坐的那根树枝……
-
@WilliamTweed — 据推测,当您创建缩减的测试用例时,您已将其缩减到您描述的问题消失的程度。
标签: javascript jslint