JSLintがここで警告を発する理由は理解していますが、コードを検証するために他にどのようにコードを記述すればよいかわかりません。
これが煮詰めたサンプルです。以下のコードには、2つのイベントリスナーをアタッチする必要があるオブジェクトがあります。1つは「complete」用、もう1つは「error」用です。それぞれが独自のイベントハンドラーを指します。どちらかのイベントハンドラーに到達したら、両方のイベントハンドラーを削除したいと思います。ただし、最初のイベントハンドラーから2番目のイベントハンドラーのリスナーを削除しようとすると、常に検証エラーが発生します。
var myFunction = function(obj) {
var doComplete = function() {
// ...Do something here to handle successful execution, then remove listeners
obj.removeEventListener('complete',doComplete,true);
obj.removeEventListener('error',handleError,true); // INVALID!
};
var handleError = function() {
// ...Do some error handling here and then remove event listener
obj.removeEventListener('complete',doComplete,true);
obj.removeEventListener('error',handleError,true);
};
obj.addEventListener('complete',doComplete,true);
obj.addEventListener('error',handleError,true);
obj.load();
};
これらの警告のいずれかが表示された場合、それは常に何か間違ったことをしていることを意味しますが、この場合、問題を回避する方法がわかりません。誰かがこれを行う正しい方法を知っていますか?
検証エラーは次
Lint at line 5 character 41: 'handleError' is not defined.
のとおりです:(WebクライアントによるとImplied global: handleError 5
)