カスタムメソッド

[新着] Webテンプレートを仮オープンしました



0   名前: mita-4jR : 2006/10/23(月) 17:51  ID:50jTogy/
組み込みオブジェクトにカスタムメソッドを設定するとfor-inで不都合が
あるのは常識ですよね。でも、この頻度ってそう多くないと思うのですが、
やはりよくないことなのでしょうか。

1   名前: ラブーフ : 2006/10/23(月) 17:51  ID:mGMjLPPf
こんにちは。

 http://erik.eae.net/archives/2005/06/06/22.13.54 とか
 http://dean.edwards.name/weblog/2006/07/erlaubt/ とか
 http://www.outofhanwell.com/blog/index.php?title=verboten_but&more=1&c=1&tb=1&pb=1

が参考になるかもしれません。

 自分のポリシーを持って、分かってて使う分にはよいと思いますよ、個人的には。

2   名前: mita-4jR  : 2006/10/23(月) 17:51  ID:OUXvoe.U
>>ラブーフさん

こんにちは
チップスありがとうございました。ちょっと訪問して勉強してみます。
では。

3   名前: 匿名 : 2006/10/23(月) 17:51  ID:K326bbkp
>>0
> この頻度ってそう多くないと思うのですが

var Data = {
    '日本' : {
        '東京' : { ... },
        '佐賀' : { ... }
    },
    
    '韓国' : {
        'ソウル' : { ... },
        'プサン' : { ... }
    }
};


みたいな辞書は普通に作らないか?こんな時、勝手にObject.prototypeが拡張されてたら泣くよ。
# まあhasOwnPropertyでチェックすれば良いかもしれないが、Operaちゃんがどうにもねえ。

JavaScriptは自由な書き方ができる。それは逆に言うなら、他人のコードとの互換性が著しく低いことにつながる。
自分ひとりだけが使うことが分かりきっているなら好きにすればいいけど、
少しでも他人が使う可能性がある場合は、慎重になってなり過ぎることはない。

__JavaScriptの__組み込みオブジェクトのプロトタイプを拡張するくらいなら、グローバル関数・変数の方がまだマシという意見もある。
その辺は、用途にも関わってくるだろうけど。

組み込みオブジェクトを拡張するのではなく、組み込みオブジェクトを継承したチャイルドを利用するのはどうだろうか。
http://blog.livedoor.jp/dankogai/archives/50662064.html

一覧へ戻る