在Javascript中模仿Java风格的继承

时间:2015-05-12 14:31:45

标签: javascript inheritance

我正在尝试模仿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();

两个对象的基础“当前”对象是相同的!无论如何要解决这个问题?谢谢!

朱莉娅

1 个答案:

答案 0 :(得分:1)

据我所知,你不能(至少不容易,也许你可以找到一些模仿类似java的继承的javascript库)。在继承方面,Java和Javascript非常不同。如果您想了解有关该主题的更多信息,可以在此处查看:https://developer.mozilla.org/en/docs/Web/JavaScript/Inheritance_and_the_prototype_chain