Eslint参考手册
规则 | Rules
consistent-this
通常需要捕获当前的执行环境以便随后可用。一个突出的例子是 jQuery 回调:
var that = this;
jQuery('li').click(function (event) {
// here, "this" is the HTMLElement where the click event occurred
that.setFoo(42);
});
有许多常用this
的别名,例如that
,self
或me
。希望确保团队同意的任何别名在整个应用程序中一致使用。
规则细节
此规则对于指定this
别名的变量强制执行两项操作:
- 如果声明了具有指定名称的变量,则必须对其初始化(在声明中)或赋值(与声明在同一范围内)该值
this
。
- 如果一个变量被初始化或赋值
this
,变量的名称必须是一个指定的别名。
选项
此规则具有一个或多个字符串选项:
- 指定的别名
this
(默认"that"
)这个规则的错误代码示例默认"that"
选项:/ * eslint consistent-this:["error", "that"]*/ var that = 42; var self = this; that = 42; self = this;Examples of correct code for this rule with the default"that"
option:/*eslint consistent-this: ["error", "that"]*/ var that = this; var self = 42; var self; that = this; foo.bar = this; - 如果变量未初始化,则使用默认选项对此规则进行错误代码示例
"that"
:/ * eslint consistent-this: ["error", "that"]*/ var that; function f() { that = this; } - 此规则的默认代码正确的示例
"that"
选项,如果该变量未初始化: ["error", "that"]*/ var that; that = this; var foo, that; foo = 42; that = this; - 当不使用它如果你需要捕获嵌套环境,
consistent-this
将会有问题。该性质的代码通常难以阅读和维护,您应该考虑重构它。版本此规则在ESLint 0.0.9中引入。
- Rule source
- Documentation source
规则 | Rules相关
ESLint 是一个代码规范和错误检查工具,有以下几个特性。所有东西都是可以插拔的。你可以调用任意的 rule api 或者 formatter api 去打包或者定义 rule or formatter。任意的 rule 都是独立的。没有特定的 coding style,你可以自己配置。
主页 | https://eslint.org/ |
源码 | https://github.com/eslint/eslint |
发布版本 | 4.12.0 |