例如,我有以下构造函数:
function MyType(){
this.someProp = 'someText';
};
我创建了一个新实例:
var myVar = new MyType();
现在我想检查这个对象的类型......
console.log(typeof(myVar)); //object
console.log(myVar.toString()); //[object Object]
typeof
或默认toString
方法是否有办法返回 MyType
,而不仅仅是object
。
以上内容已在Chrome控制台中测试过。
JSFiddle:http://jsfiddle.net/keqHN/
答案 0 :(得分:2)
不,您无法覆盖typeof
的行为。它定义为in the spec,并且有一定数量的可能返回值。它使用操作数的“type”,它只能是null,undefined,string,boolean,number和object之一。
但是,instanceof
应该有效:
console.log(myVar instanceof MyType); // true
旁注... typeof
是一个操作符,而不是一个函数,所以你不需要它周围的括号。
答案 1 :(得分:1)
不,Javascript中没有自定义类型。有9个本地构造函数:
还有3种原始类型: