[解決済み] javascriptで子クラスから親メソッドを呼び出すには?
2022-04-12 22:14:51
質問
この数時間、私の問題の解決策を探そうとしていますが、どうやら絶望的なようです。
基本的には、子クラスから親メソッドを呼び出す方法を知る必要があります。 私がこれまで試したすべてのものは、動作しないか、親メソッドを上書きすることで終わります。
私はjavascriptでOOPを設定するために、次のコードを使用しています。
// SET UP OOP
// surrogate constructor (empty function)
function surrogateCtor() {}
function extend(base, sub) {
// copy the prototype from the base to setup inheritance
surrogateCtor.prototype = base.prototype;
sub.prototype = new surrogateCtor();
sub.prototype.constructor = sub;
}
// parent class
function ParentObject(name) {
this.name = name;
}
// parent's methods
ParentObject.prototype = {
myMethod: function(arg) {
this.name = arg;
}
}
// child
function ChildObject(name) {
// call the parent's constructor
ParentObject.call(this, name);
this.myMethod = function(arg) {
// HOW DO I CALL THE PARENT METHOD HERE?
// do stuff
}
}
// setup the prototype chain
extend(ParentObject, ChildObject);
まず親のメソッドを呼び出して、子クラスでそれにいろいろと追加する必要があります。
ほとんどのOOP言語では、このようなことは
parent.myMethod()
しかし、javascriptでどのように行われるのか、本当に把握できていません。
どんな助けでも大歓迎です、ありがとうございます
解決方法は?
その方法は次のとおりです。
ParentClass.prototype.myMethod();
また、現在のインスタンスのコンテキストで呼び出したい場合は、次のようにします。
ParentClass.prototype.myMethod.call(this)
子クラスから引数付きで親メソッドを呼び出す場合も同様です。
ParentClass.prototype.myMethod.call(this, arg1, arg2, ..)
*
ヒント
apply()
の代わりに
call()
を使えば、引数を配列で渡すことができます。
関連
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
JSアレイループと効率解析の比較
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
jQueryのコピーオブジェクトの説明
-
vueのグローバルがscss(mixin)を導入。
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
[解決済み】awaitは非同期関数でのみ有効です。
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
JavaScriptのgetElementById()メソッド入門
-
jq は html ページとデータを動的に分割する。