Javascript js创建抽象类

Javascript js创建抽象类,javascript,Javascript,我试图使用下面的声明在js中创建一个抽象类(模仿oops)。如果我对下面的每个方法使用prototype关键字,它都会失败(请参见下面的案例1),但是当我在没有prototype关键字的情况下使用它时,它会工作,不确定我是否正确声明了它。。但是,当js文件被声明到主页面时,相同的声明可以工作,但当从对话框调用时失败。。我认为申报是个问题 if(nsp === undefined) var nsp = {}; // nsp is the namespace nsp.abstractCls=

我试图使用下面的声明在js中创建一个抽象类(模仿oops)。如果我对下面的每个方法使用prototype关键字,它都会失败(请参见下面的案例1),但是当我在没有prototype关键字的情况下使用它时,它会工作,不确定我是否正确声明了它。。但是,当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";
} ;

station nsp.abstractTbl.prototype.perfTable wroks,但不确定使用prototype关键字调用每个函数是否正确。

尝试将该类的原型声明到新对象的行去掉。

tblns.abstractTbl.prototype=new object();无法工作&tblns.abstractTbl=新对象();方法perfActionYes的抛出错误原型未定义是的,请完全删除该行:)否它不起作用。。它抛出同样的错误。。此外,我不确定这样做是否正确,因为如果我们删除每个方法上的原型,那么函数对每个对象都是公共的,这是我不想要的,因为它对抽象类可能是正确的,但我对子类也有同样的问题。。当我使用名称空间时,还有一件事是它开始出现问题的地方。如果我不使用nsp直接使用它,它就会工作!!。。正如本链接中给出的那样,它很有魅力&我的代码类似于最后一个,stmt=>tblns.abstractTbl.prototype.perfTable,它很有魅力,但更大的问题是如何是什么导致它工作的&百万美元的问题是正确的。我想看看这个答案: