javascript - 在 Javascript 中模仿 Java 风格的继承

标签 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();

两个对象的底层“当前”对象是相同的!有办法解决这个问题吗?谢谢!

Julia

最佳答案

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

关于javascript - 在 Javascript 中模仿 Java 风格的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30193966/

相关文章:

javascript - 将 `jquery` 添加到 tsconfig 中的 types 字段

javascript - 消息: count(): Parameter must be an array or an object that implements Countable in codeigniter model

c# - 根据值决定创建哪个派生类?

java - 在 java 中,我们可以将父类(super class)对象传递给子类引用吗?

objective-c - 在 Objective-C 中,我是否可以重写父类用来遵守协议(protocol)的子类中的方法?

javascript - 通过javascript隐藏一行

javascript - 如何在 selectize.js 中设置默认值?

java - 在运行时,查找 Java 应用程序中扩展基类的所有类

javascript - 使用 ajax xml 变量填充 Google 图表

java - 为什么子类方法打印 null ?我究竟做错了什么?