nodejs 如何判断一个变量是不是个类?
class Test {}
function Test {}
function isClass(v) {
try {
new v();
} catch (e) {
if (e.message.includes('is not a constructor')) {
return false;
}
const proto = Object.getPrototypeOf(v);
const keys = Object.getOwnPropertyNames(proto);
for (let key of keys) {
const descriptor = Object.getOwnPropertyDescriptor(proto, key);
if (descriptor.enumerable === false) {
return true;
}
}
}
return true;
}
class TestClass {}
function TestFunc() {}
console.log(isClass(TestClass)); // true
console.log(isClass(TestFunc)); // false
3 回答2.7k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读
2 回答678 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.2k 阅读
想到一个方法,使用 toString 可以查看是不是以 class 开头