在Javascript中模仿Java风格继承

在Javascript中模仿Java风格继承,javascript,inheritance,Javascript,Inheritance,我试图模仿Java风格的类继承,我想我已经做到了。然而,我有一个问题,当我创建同一个Javascript类的多个实例时,所有实例都是相同的 情况是这样的 我有一个名为Screen的Javascript类: function Screen(screenName) { this.current = new DataResultSet(); // this is a java class this.current.setScreenName(screenName); } Scree

我试图模仿Java风格的类继承,我想我已经做到了。然而,我有一个问题,当我创建同一个Javascript类的多个实例时,所有实例都是相同的

情况是这样的

我有一个名为
Screen
的Javascript类:

function Screen(screenName) {
    this.current =  new DataResultSet(); // this is a java class
    this.current.setScreenName(screenName); 
}
Screen.prototype.GetScreenName= function() {
    return this.current.getScreenName();
}
Screen.prototype.GetFieldValue= function(name)  {
    return this.current.getValue(name);
}
// some other functions that can be called that utilize the current object.
这是继承的类:

function screenSub1() {}
screenSub1.prototype=new Screen("screenSub1");
screenSub1.prototype.GetID = function() { return GetFieldValue("ID"); }
// some other functions that can be called, specific to this class
现在,在我的代码中,如果我这样做

var obj = new screenSub1();
var obj2 = new screenSub1();
两个对象的基础“当前”对象是相同的!有没有办法绕过这个问题?谢谢


Julia

据我所知,您不能(至少不容易,也许您可以找到一些模仿java继承的javascript库)。Java和Javascript在继承方面非常不同。如果你想了解更多关于这个主题的信息,可以在这里查看:

我注意到的一点:
Screen.prototype.GetScreenName(){
应该是
Screen.prototype.GetScreenName=function(){
,如果我没弄错的话(对于
screenSub1.prototype.GetID
),还有Javascript约定(据我所知)是让函数以小写字母开头,然后用驼峰大小写其余部分,因此类似于
getScreenName
而不是
getScreenName
。它需要是
function screenSub1(){Screen.call(这是“screenSub1”);}screenSub1.prototype=Object.create(Screen.prototype)
Bergi,非常感谢您的回复!很抱歉我在帖子中犯了这么多错误。我模拟了代码,没有检查。我搜索了,但没有找到任何答案。但是您的语法是正确的,我可以正常工作了!谢谢!!!!