考虑以下简单代码:
"use strict";
var obj = {
f: function() {
this.prop = 'value';
g.bind( this )();
}
};
function g() {
console.log( this.prop );
}
如果我尝试验证此代码,则jshint会给我Possible strict violation.
我调用的错误console.log( this.prop );
。这是因为this
在函数的严格模式下未定义。
但是我在调用此函数之前先绑定了该函数,所以this
正确的对象也是如此。
我正在使用这种“设计模式”来避免使主要对象混乱。在参数中传递属性也会使函数混乱,因此我拒绝这样做。此外,这正是bind
目的。
JSHint有办法让我这样做吗?