0

例如,我有以下构造函数:

function MyType(){

    this.someProp = 'someText';

};

我创建一个新实例:

var myVar = new MyType();

现在我想检查这个对象的类型......

console.log(typeof(myVar));    //object
console.log(myVar.toString()); //[object Object]

是否有任何方法typeof或默认toString方法返回MyType,而不仅仅是object.

4

2 回答 2

2

不,您不能覆盖typeof. 它在规范中定义,并且有一组可能的返回值。它使用操作数的“类型”,它只能是 null、undefined、string、boolean、number 和 object 之一。

但是,instanceof应该工作:

console.log(myVar instanceof MyType); // true

旁注...typeof是一个运算符,而不是一个函数,所以你不需要它周围的括号。

于 2013-02-01T16:30:47.553 回答
1

不,Javascript 中没有自定义类型。有 9 个原生构造函数:

  • 数字()
  • 细绳()
  • 布尔值()
  • 目的()
  • 大批()
  • 功能()
  • 日期()
  • 正则表达式()
  • 错误()

还有 3 种原始类型:

  • 细绳
  • 数字
  • 布尔值
于 2013-02-01T16:36:03.680 回答