正确的方法(jshint.com验证)使用'this'|赋值给var

时间:2012-08-11 20:32:35

标签: javascript

为什么要将此赋值给var break 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

1 个答案:

答案 0 :(得分:2)

this未绑定到某个值时会中断,这似乎是JSHint的情况,因为它是您所处的函数声明,而不是函数文字。如果您总是给this一个值(使用callapply,或者将该函数分配给某个属性),那么您可以放心地忽略它。