gpt4 book ai didi

javascript - 使用 Resig 的简单 javascript 继承确定一个函数是否扩展另一个函数

转载 作者:行者123 更新时间:2023-12-02 17:47:42 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com