有没有办法返回自定义类型而不是“对象”?在下一种情况下,我想返回即“i16”
>function Int16(v) { this.v=v }; var n = new Int16(10);
>typeof n
"object"
>Object.prototype.toString.call(n)
"[object Object]"
有没有办法返回自定义类型而不是“对象”?在下一种情况下,我想返回即“i16”
>function Int16(v) { this.v=v }; var n = new Int16(10);
>typeof n
"object"
>Object.prototype.toString.call(n)
"[object Object]"
将自定义“typeof”属性添加到您的类。然后有一个类似(未经测试)的功能:
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