我正在使用 John Resig 的简单 javascript inheritance code建立和扩展类。我有一些像他的例子这样的类(class):
var Person = Class.extend({
init: function(isDancing){
this.dancing = isDancing;
},
dance: function(){
return this.dancing;
}
});
var Ninja = Person.extend({
init: function(){
this._super( false );
},
dance: function(){
// Call the inherited version of dance()
return this._super();
},
swingSword: function(){
return true;
}
});
我想要一个可以传递变量的函数,如果该变量是从 Person
继承的类,它将返回 true,否则返回 false。
“继承自 Person
”是指它是通过调用 Person 或继承自 的类的
。.extend()
函数创建的人
如果我有该类的实例,我可以使用instanceof 来确定该类是否继承自Person
。有什么方法可以在不创建实例的情况下执行此操作吗?
谢谢!
最佳答案
您可以简单地使用instanceof
operator与类的原型(prototype):
function isPersonSubclass(cls) {
return typeof cls == "function" && cls.prototype instanceof Person;
}
isPersonSubclass(Ninja) // true
关于javascript - 使用 Resig 的简单 javascript 继承确定一个函数是否扩展另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615731/