【发布时间】:2014-02-06 22:45:48
【问题描述】:
我正在使用 John Resig 的简单 javascript inheritance code 来构建和扩展类。我有一些像他的例子一样的课程:
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 或继承自 Person 的类的 .extend() 函数创建的。
如果我有一个类的实例,我可以使用 instanceof 来确定该类是否继承自 Person。有什么方法可以做到这一点不创建实例?
谢谢!
【问题讨论】:
-
他的扩展实际上只是复制属性,不涉及继承。我担心你的任务是不可能的,除非有静态分析师或某种昂贵的反射嗅探。