0

为什么将 this 分配给 var 会破坏 jshint.com

我知道如何在 jshint.com 中绕过它。

另外,我知道如何摆脱它。

但我想知道这打破了严格的定义。

示例代码

function vFlipBP( element_or_string ) {
    var previous_page_element,
        previous_tag_element,
        current_page_element,
        select_element;
    if( typeof ( element_or_string ) === 'string' ) {
        select_element = document.getElementById( element_or_string );
    } else {
        select_element = this; // Possible strict violation <- error here
    }
.
.
.

呼叫类型 1

document.getElementById( this.tag_array[element] ).onclick = vFlipBP;

呼叫类型 2

vFlipBP( this.tag_array[0] ); // string parameter
4

1 回答 1

2

它在未绑定到值时中断this,这可能是 JSHint 的情况,因为它是您所在的函数声明,而不是函数文字。如果您总是给出this一个值(使用callor apply,或通过将函数分配给属性),那么您可以放心地忽略它。

于 2012-08-11T20:36:02.580 回答