0

これをvarbreakjshint.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値を指定する場合(またはを使用するcallapply、関数をプロパティに割り当てることによって)、それを無視しても問題ありません。

于 2012-08-11T20:36:02.580 に答える