按TypeOf返回的自定义值



有什么方法可以返回自定义类型而不是"对象"?在下一个情况下,我想返回,即" i16"

>function Int16(v) { this.v=v }; var n = new Int16(10);
>typeof n
"object"
>Object.prototype.toString.call(n)
"[object Object]"

在您的类中添加自定义" type"属性。然后具有类似(未经测试)的函数:

mytypeof : function (v) {
  type = typeof v;
  return type === "object" && typeof(v["typeof"]) != "undefined" ? v["typeof"] : type;
}

不,您不能超载typeof - 它总是返回基本类型。

在给定的示例中,您可以使用构造函数属性:

function Int16(v) { this.v=v }; 
> var n = new Int16(10);
> n.constructor.name
"Int16"
> n.constructor === Int16
true

最新更新