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