例如,我有以下构造函数:
function MyType(){
this.someProp = 'someText';
};
我创建一个新实例:
var myVar = new MyType();
现在我想检查这个对象的类型...
console.log(typeof(myVar)); //object
console.log(myVar.toString()); //[object Object]
有没有办法让 typeof
或默认的 toString
方法返回 MyType
,而不仅仅是 对象
。
以上内容已在 Chrome 控制台中测试。
JSFiddle:http://jsfiddle.net/keqHN/
最佳答案
不,您不能覆盖 typeof
的行为。它被定义为 in the spec并且有一定数量的可能返回值。它使用操作数“type ”,操作数只能是 null、undefined、string、boolean、number 和 object 之一。
但是,instanceof
应该可以工作:
console.log(myVar instanceof MyType); // true
旁注... typeof
是一个运算符,而不是一个函数,因此您不需要将其括起来的括号。
关于javascript - 创建新类型,还是检查类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650734/