2012-11-12 2 views
2

"개체"대신 사용자 지정 유형을 반환 할 수있는 방법이 있습니까? 다음 사례에서 'i16'을 반환하고 싶습니다.typeof에 의해 반환 된 사용자 지정 값

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

>typeof n 
"object" 
>Object.prototype.toString.call(n) 
"[object Object]" 
+1

'n은 true를 돌려 다음 (검증되지 않은) 같은 함수 뭔가가있다. 도움이 될지 모르겠다.) – Yoshi

+0

가능하지 않다면 값을 반환하는 메소드를 추가 할 수있다. –

+0

'instanceof'를 사용하는 것 외에는 다른 방법을 모른다. 다시 말하지만, 연산자 오버로딩은 JS에서는 불가능합니다 (불행히도). – Yoshi

답변

1

클래스에 맞춤 'typeof'속성을 추가하십시오.

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

생성자 속성을 사용 : Int16` instanceof를

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