タグ

2010年9月27日のブックマーク (1件)

  • valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵

    だいぶ前に、 var o = { i: 10, valueOf: function() { return this.i; } } のようなコード(もっと使い道のあるコード)を見たことがあった。そのときはvalueOfっていうとオブジェクトのメソッドて印象しかなくて、ほとんど使ったことがなかったからおっぺけぺーのおひゃーとスルーしましたが。 これはたとえば、 alert(o > 20); // false と扱うことができる。なんでオブジェクトが数値と比較できてるんだと思ったけど、 alert(+o); // 10 数値として扱えた。 これはvalueOfメソッドによるもので、valueOfメソッドというのはオブジェクトを基型などに変換する(数値型が多い)ときに呼び出され、オブジェクトを基型として扱う場面では内部で自動で呼び出される。 ということで、この場合数値として振舞うべきだぜブラン

    valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵