この単純な JavaScript コードを検討してください - http://jsfiddle.net/mark69_fnd/c2DRP/
this
JSLint を使用してコードを検証すると、関数内での使用時に jslint の「厳密な違反」エラーがトリガーされinner
ます。ただし、その関数は正しい非グローバル コンテキストで呼び出されます。
では、その特定の関数でこの JSLint エラーを抑制するにはどうすればよいのでしょうか。
ありがとう。
この単純な JavaScript コードを検討してください - http://jsfiddle.net/mark69_fnd/c2DRP/
this
JSLint を使用してコードを検証すると、関数内での使用時に jslint の「厳密な違反」エラーがトリガーされinner
ます。ただし、その関数は正しい非グローバル コンテキストで呼び出されます。
では、その特定の関数でこの JSLint エラーを抑制するにはどうすればよいのでしょうか。
ありがとう。
JSLint はこれをサポートしていないため、無視する必要があります。JSHintと呼ばれるコミュニティ フォークには、次validthis
のような場合に警告を抑制することができるというオプションがあります。
このオプションは、コードが厳密モードで実行されており、コンストラクター以外の関数でこれを使用している場合に、厳密な違反の可能性に関する警告を抑制します。このオプションの使用が厳密モードで有効であることが確実な場合 (たとえば、Function.call を使用して関数を呼び出す場合) は、このオプションを関数スコープでのみ使用する必要があります。
次のように、「this」への参照を宣言する必要があります。
function f() {
"use strict";
var ref = this;
function inner() {
alert(ref.msg);
}
inner.call({ msg:'hello' });
}