[解決済み] JavaScriptの無名関数に引数を渡すにはどうしたらいいですか?
2023-05-07 07:46:38
質問
JavaScriptの無名関数に引数を渡す方法を考えています。
このサンプルコードを見てください、私が言いたいことがわかると思います。
<input type="button" value="Click me" id="myButton" />
<script type="text/javascript">
var myButton = document.getElementById("myButton");
var myMessage = "it's working";
myButton.onclick = function(myMessage) { alert(myMessage); };
</script>
ボタンをクリックすると、メッセージが表示されます。
it's working
と表示されるはずです。 しかし
myMessage
の変数が NULL になっています。
jQueryは無名関数を多用しますが、その引数を渡すのに一番良い方法は何でしょうか?
どのように解決するのですか?
特定のケースを修正するだけで、動作するようになります。
<script type="text/javascript">
var myButton = document.getElementById("myButton");
var myMessage = "it's working";
myButton.onclick = function() { alert(myMessage); };
</script>
この例は、作成され、要素のハンドラとして割り当てられた匿名関数は、それが作成されたコンテキストで定義された変数にアクセスすることができるので、動作します。
記録として、ハンドラ (onxxx プロパティを設定することで割り当てられる) は、DOM によって渡されるイベントオブジェクトである単一の引数を取ることを期待し、そこに他の引数を強制的に渡すことはできません。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] javascriptでオプションのパラメータを扱う
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)