如何使用javascript获取类型的所有类子类型?
我有一个类a和一个类B扩展a我需要找到所有的类B和扩展a的其他类。这有两个方面:如何使用javascript获取类型的所有类子类型?,javascript,Javascript,我有一个类a和一个类B扩展a我需要找到所有的类B和扩展a的其他类。这有两个方面: 具有要检查的类(构造函数)列表 检查 没有什么内在的东西能帮你,你必须自己做。通过class创建的函数不会作为属性添加到全局对象中 一旦你有了这个列表,#2就成为可能,因为class锁定了它创建的函数的prototype属性(你不能用其他东西替换它),你可以与instanceof和对象建立关系。getPrototypeOf: if (B.prototype instanceof A) { // B ex
class
创建的函数不会作为属性添加到全局对象中
一旦你有了这个列表,#2就成为可能,因为class
锁定了它创建的函数的prototype
属性(你不能用其他东西替换它),你可以与instanceof
和对象建立关系。getPrototypeOf
:
if (B.prototype instanceof A) {
// B extends A, directly or indirectly
}
if (Object.getPrototypeOf(B.prototype) === A.prototype) {
// B extends A directly
}
对于旧的ES5语法来说,这并不一定可靠,因为正常函数上的原型
不是只读的
实时示例:(需要支持类的浏览器)
“严格使用”;
甲级{
}
B类扩展了A类{
}
C类{//
}
log(“B.prototype instanceof A?”+(B.prototype instanceof A));
console.log(“Object.getPrototypeOf(B.prototype)==A.prototype?”+(Object.getPrototypeOf(B.prototype)==A.prototype));
log(“C.prototype instanceof A?”+(C.prototype instanceof A));
console.log(“Object.getPrototypeOf(C.prototype)==A.prototype?”+(Object.getPrototypeOf(C.prototype)==A.prototype))代码>这有两个方面:
具有要检查的类(构造函数)列表
检查
没有什么内在的东西能帮你,你必须自己做。通过class
创建的函数不会作为属性添加到全局对象中
一旦你有了这个列表,#2就成为可能,因为class
锁定了它创建的函数的prototype
属性(你不能用其他东西替换它),你可以与instanceof
和对象建立关系。getPrototypeOf
:
if (B.prototype instanceof A) {
// B extends A, directly or indirectly
}
if (Object.getPrototypeOf(B.prototype) === A.prototype) {
// B extends A directly
}
对于旧的ES5语法来说,这并不一定可靠,因为正常函数上的原型
不是只读的
实时示例:(需要支持类的浏览器)
“严格使用”;
甲级{
}
B类扩展了A类{
}
C类{//
}
log(“B.prototype instanceof A?”+(B.prototype instanceof A));
console.log(“Object.getPrototypeOf(B.prototype)==A.prototype?”+(Object.getPrototypeOf(B.prototype)==A.prototype));
log(“C.prototype instanceof A?”+(C.prototype instanceof A));
console.log(“Object.getPrototypeOf(C.prototype)==A.prototype?”+(Object.getPrototypeOf(C.prototype)==A.prototype))代码>您没有提供足够的信息。您是否使用sass/less?您是否必须查找所有扩展类A的HTML元素,或者只查找文件中的类?@DarkoRiđićless/sass与此有什么关系?(他不是在谈论css类)如何扩展类?我不确定这是一个格式正确的问题。@zer00ne这是一个新的ES2015问题。您没有提供足够的信息。您是否使用sass/less?您是否必须查找所有扩展类A的HTML元素,或者只查找文件中的类?@DarkoRiđićless/sass与此有什么关系?(他不是在谈论css类)如何扩展类?我不确定这是一个格式正确的问题。@zer00ne这是一个新的ES2015问题。