-1

sample.B で sample.A をオーバーライドする必要があるシナリオがあります。

クリックすると、sample.A.Test() を呼び出す必要がある関数が呼び出され、sample.B でオーバーライドされた関数 (Test) を内部的に呼び出して、この関数のみを実行する必要があります。出来ますか ?

私の仲間は、Java スクリプトがデフォルトでサブクラス関数を呼び出して実行されると言いましたが、それは本当ですか?

上記のシナリオ

sample.A = (function () {

return {

Test: function(){           
    console.debug('Test in Super class');
},
}

sample.B = (function () {
return {

Test: function(){   
    console.debug('Test in Sub class');
},
}

この動作は Java スクリプトまたは jquery で実現できますか?

4

1 に答える 1

0

JavaScriptで「継承」を有効にするには、少なくともいくつかのユーティリティメソッドを追加する必要があります。

例えば:

function inheritMethods(fromA, intoB) {
   for (x in fromB) {
     if (typeof x === 'function') {
        intoB[x] = fromA[x];
     }
   }
}

またはのようなもの..。

しかし、古典的なOOの意味での「継承」はJavaScriptにネイティブではないため、これをエミュレートするにはさまざまな方法があります。この本を手に入れることができれば、これに関する「コードの再利用」の下の「 JavaScriptパターン」で素晴らしい議論があります。

于 2012-09-17T07:48:26.047 に答える