Javascript:在超类中获取子类类型

Javascript:在超类中获取子类类型,javascript,Javascript,我正在使用创建一些类并设置一些继承结构 var ControlType = Class.extend({ init: function(){ }, html: function(type){ //Get template based on name of subclass } }); var YesNo = ControlType.extend({ init: function(){ }, html: function() {

我正在使用创建一些类并设置一些继承结构

var ControlType = Class.extend({
    init: function(){ },

    html: function(type){
        //Get template based on name of subclass
    }
});

var YesNo = ControlType.extend({
    init: function(){ },
    html: function() {
        this._super('YesNo')
    }
});
现在我想知道是否有可能在
ControlType.html
中获取子类的类型而不显式地传递它

更新: 我尝试了
this.constructor
,但没有像某人建议的那样使用扩展功能,但这返回了父类的类型。因此,在下面的示例中,控制台记录Person(),但我需要Jimi()


看起来您正在使用某种类型的继承库。我不确定
extend
的作用,但在普通JavaScript中,您可以使用
this.constructor
来引用对象的构造函数。

很难选择,因为实际上有几种不同的方法可以做到这一点。我想最简单的可能是这样的:

function Person(){
    this.name = 'Person'; //<<< ADDED THIS
    this.say = function(){
        console.log(this.name);  //<<< ADDED THIS
    }
}

function Jimi(){
    this.name = 'Jimi';
}
Jimi.prototype = new Person();

var j = new Jimi();
j.say();

希望能有帮助

您正在使用哪个JS库?我不记得纯javascript有
类.extend
函数。堆栈溢出似乎吞噬了我的标记。我现在修好了。谢谢你的回答。似乎我在自己的代码中使用了相同的解决方案。
function Person(){
    this.name = 'Person'; //<<< ADDED THIS
    this.say = function(){
        console.log(this.name);  //<<< ADDED THIS
    }
}

function Jimi(){
    this.name = 'Jimi';
}
Jimi.prototype = new Person();

var j = new Jimi();
j.say();
Jimi