1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
用class關(guān)鍵字構(gòu)建的繼承體系,用instanceof判斷就可以了
class Animal{}
class Rabbit extends Animal{}
var rabbit = new Rabbit();
rabbit instanceof Rabbit; //true
rabbit instanceof Animal; //true
根據(jù)以上的情景,定義這個(gè)isAssignableFrom方法
Function.prototype.isAssignableFrom = function(f) {
if(!(typeof f == "function")) {
return false;
}
if(this == f) {
return true;
}
var prototype = this.prototype;
var p = f.prototype;
while(p) {
if(p == prototype) {
return true;
}
p = p.__proto__;
}
return false;
}
結(jié)果
Animal.isAssignableFrom(Rabbit); //true
Text.isAssignableFrom(Comment); //false
Node.isAssignableFrom(Comment); //true
添加回答
舉報(bào)