[解決済み] なぜJSHINTは、これは厳密な違反だと文句を言うのですか?
2022-12-07 15:56:32
質問
と重複しているのではないでしょうか? Strict Violation このキーワードと revealing module パターンを使用した
こんなコードがありました。
function gotoPage(s){
if(s<=this.d&&s>0){this.g=s; this.page((s-1)*this.p.size);}
}
function pageChange(event, sorter) {
var dd = event.currentTarget;
gotoPage.call(sorter, dd[dd.selectedIndex].value);
}
そして、JSHINT (JSLINT) は文句を言っています。 ハイライトされた行に対して、"Strict violation."と言っています。
私の使っている
Function.call()
を使用して、インスタンスを参照することは不適切でしょうか?
これは悪いスタイルとみなされるのでしょうか?
どのように解決するのですか?
JSHintが "厳密な違反の可能性"と言っています。
this
を使用しているためです。
非厳格モードでは
gotoPage(5)
を呼び出すと
this
をグローバルオブジェクト (
window
に変換します)。ストリクトモードでは
this
は
undefined
となってしまい、困ったことになります。
おそらく、この関数をバインドして呼び出すということですね。
this
コンテキスト、例えば
gotoPage.bind(myObj)(5)
または
gotoPage.call(myObj, 5)
. もしそうなら、JSHint を無視してもエラーは発生しないので大丈夫です。しかし、JSHint はあなたのコードが誰が読んでも不明瞭であることを伝えているのです、なぜなら
this
を使用することは、明らかにメソッドでないものの内部で非常に混乱するからです。単純にオブジェクトをパラメータとして渡す方が良いでしょう。
function gotoPage(sorter, s) {
if (s <= sorter.d && s > 0) {
sorter.g = s;
sorter.page((s - 1) * sorter.p.size);
}
}
function pageChange(event, sorter) {
var dd = event.currentTarget;
gotoPage(sorter, dd[dd.selectedIndex].value);
}
関連
-
[解決済み] JSHintでconstを使用すると警告が出るのはなぜですか?
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする
-
[解決済み] リダイレクトされずにHTMLフォームを送信する方法