私はjavascriptプロトタイプについて読んでいて、Numberクラスを拡張してオブジェクトのタイプを示す関数を追加する次のコードに出くわしました
Number.prototype.toString = function() {
return typeof (this);
}
(123).toString(); //prints "object"
valueOf
そして、関数を使用してプリミティブ表現を取得できることを読みました
n = new Number(123);
typeof n.valueOf() // prints "number"
だから私は toString 関数でプリミティブ表現を取得しようとしました
Number.prototype.toString = function() {
return typeof (this.valueOf());
}
(123).toString(); //prints "object"
"number" を返すことを期待していましたが、 "object" を出力しました。それは予想される動作ですか、それとも間に何かが欠けていますか?
更新: Firebug と chrome コンソールは「オブジェクト」を出力し、アラートは両方のケースで番号を表示します UPDATE2: 間違いでした。console.log ((123).toString()) 出力番号