[解決済み] JavaScriptの関数を参照しながらオーバーライドする
2022-04-25 18:12:05
質問
ある関数があります。
a()
をオーバーライドしたいのですが、元の
a()
がコンテキストに応じた順序で実行されます。例えば、ページを生成しているときに、次のように上書きしたいことがあります。
function a() {
new_code();
original_a();
}
と、時にはこんな風に。
function a() {
original_a();
other_new_code();
}
どうすれば、その
original_a()
をオーバーライドしている
a()
? それは可能なのでしょうか?
この方法でオーバーライドするための代替案を提案しないでください、私はたくさん知っています。私はこの方法について具体的に尋ねているのです。
どのように解決するのですか?
次のような方法があります。
var a = (function() {
var original_a = a;
if (condition) {
return function() {
new_code();
original_a();
}
} else {
return function() {
original_a();
other_new_code();
}
}
})();
宣言する
original_a
は無名関数の内部で使用することで、グローバルな名前空間の混乱を防ぐことができます。
Nerdmasterがコメントで述べているように、必ず
()
を最後に追加してください。外側の関数を呼び出して、その中に
結果
(2つの内部関数のうちの1つ)を
a
に格納するのではなく、外側の関数自体を
a
.
関連
-
JSアレイループと効率解析の比較
-
Vueでルートネスティングを実装する例
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
vueのグローバルがscss(mixin)を導入。
-
vueディレクティブv-bindの使用と注意点
-
vueの補間表現とv-textディレクティブの違いについて
-
Vueのフィルタの説明
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
[解決済み] JavaScriptの関数をオーバーライドする方法