如何检查 JavaScript 中的类是否存在

40

我正在使用以下代码在 JavaScript 中定义一个类...

// file_a.js
function class_a() {
    this.prop1 = null;
    this.prop2 = null;
}

// file_b.js
var obj = new class_a;
// I need to check here if class_a exists

我该如何做到这一点?

敬礼


2
挑剔一点:在 JavaScript 中不存在“类” :) (只有对象(函数也是对象)和一些原始类型) - Felix Kling
标题可以改进请返回翻译后的文本。 - RzR
1个回答

83
if (typeof class_a === 'function')

2
当类还未被定义时,这个方法将无法工作。 - Olle Härstedt
3
如果class_a还没有被定义,那么它将是undefined,所以typeof class_a将会是字符串'undefined',因此===测试将会评估为false,这是正确的答案。它完美地工作。 - Quentin
2
没错,是我的错。我在另一个地方犯了一个错误,把我给搞糊涂了。 - Olle Härstedt
如果我的类名是一个字符串,typeof window['className'] === 'function' 总是会返回 false 吗? - Suhail Mumtaz Awan
请注意,这仅适用于 class_a 直接位于 window 下的简单情况。对于 module1.class1,此方法不适用,因为 module1 也可能未定义。 - Cesar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接