0

以下の宣言を使用して、jsで抽象クラス(oopsを模倣)を作成しようとしています。以下のすべてのメソッドにプロトタイプキーワードを使用すると失敗します(以下のケース1を参照)が、プロトタイプキーワードなしで使用すると、正しく宣言されているかどうかわかりません。ただし、jsファイルがメインページに宣言されている場合も同じ宣言が機能します。ダイアログボックスから呼び出すと失敗します。宣言が問題だと思います

if(nsp === undefined) var nsp  = {}; // nsp is the namespace

nsp.abstractCls=  function(){} ; //abstractCls is the abstract function & subclass function will extend perfAction methods (overriden methods)
nsp.abstractCls.prototype ={};

//case-1 fails , throws error is not a function (prototype keyword is present)
nsp.abstractCls.prototype.perfActiOn = function(){
    return "success";
} ;

//case-2 this works (no prototype keyword)
nsp.abstractCls.perfActiOn = function(){
    return "success";
} ;

Statment nsp.abstractTbl.prototype.perfTableは機能しませんが、すべての関数を呼び出すためのプロトタイプキーワードを使用することが正しいアプローチかどうかはわかりません。

4

1 に答える 1

0

そのクラスのプロトタイプを新しいオブジェクトに宣言する行を取り出してみてください。

于 2012-10-02T14:27:02.553 に答える