鉴于这种:
function SomeType () { return this; }
如何仅使用字符串检查对象的类型?
如果我有对构造函数的引用,那就太好了,就像这样:
new SomeType() instanceof SomeType; // true
但是,如果我想将类型检查为字符串,则没有简单的方法可以检查。
new SomeType() instanceof 'SomeType'; // TypeError
在将构造函数转换为String之后,我可以对其进行检查:
function SomeType () { return this; }
/function \bSomeType\b/.test( String(new SomeType().constructor) ); // true
但这并非在所有情况下都适用:
var SomeType = function () { return this; }
/function \bSomeType\b/.test( String(new SomeType().constructor) ); // false
有什么想法吗?尝试通过String验证类型/构造函数是否被视为反模式?
最佳答案
如何将其与窗口对象进行比较?
new SomeType() instanceof window['SomeType']; // true
关于javascript - 使用JavaScript中的字符串进行类型检测?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30463003/