タグ

javaScriptとobject汚染に関するtsupoのブックマーク (3)

  • はてなマップの prototype.js による Object.prototype 汚染の弊害

    以前からprototype.jsでObject.prototypeが汚染されてしまうのは問題になっていた。詳しくはノゾキ日記やアルファニート2.0の人がまとめている。先日はてなマップが正常に動かなくなったときいて、そういやはてマってprototype.jsつかってるからそのせいじゃないかな、と思って昼間検証したところ(有休バンザイ!)ドンピシャだった。 で、Rails追っかけやprototype.js追っかけの人は知ってると思うんだけど、最近のprototype.js(prototype.js 1.4.0_preからかな?)ではこのObject.prototype汚染がマズイと思ったのか、Object.prototype拡張がなくなった。そのため、継承は以前では ExtendKlass.prototype = (new Klass).extend({}); と書かれていたのが、 Exten

    はてなマップの prototype.js による Object.prototype 汚染の弊害
    tsupo
    tsupo 2005/10/08
    prototype.jsを最新の1.4.0_pre7に変更したところ、いぜんの正常なはてマの挙動に戻った
  • 最速インターフェース研究会 :: prototype.jsのObject汚染を回避する方法

    かなりターゲットの狭いTips。役に立たない。 prototype.jsというRuby on Railsなんかのフレームワークで使われている有名なJavaScriptのライブラリがあって、これが色々と使えそうな処理を綺麗に詰め込んであり、デファクトスタンダート的な地位を確立しているのだけれど、ちょっと微妙だなーと思うところがあって、それはObject.prototypeを拡張してしまう点。 実際の弊害はこういう。 http://d.hatena.ne.jp/nazoking/20050425/1114374966 要は連想配列として使うときに困るって話。 多分prototype.jsはJavaScriptの側でロジックを組むことをあまり想定していないため、この辺の問題にあんまり配慮していないのではないかと思うのだけれど、とりあえず無理やり回避する方法を思いついたので書いてみる。 http:

    tsupo
    tsupo 2005/10/08
    IFRAMEを作り、その中でObjectやArrayを作成してやれば、何にも拡張されていない素の状態のオブジェクトを返せる
  • Object オブジェクトの prototype に便利メソッドを放り込むのはやめて頂きたい - nazokingのブログ

    JavaScriptの便利系ライブラリで、Object の prototypeにいろいろ放り込むのがあるけど、やめていただきたい。例えば http://prototype.conio.net/ の Object.prototype.extend とか。便利なんだけどね。 Object.prototype.extend = function(object) { for (property in object) { this[property] = object[property]; } return this; }わかる、わかるよやりたいことは。あれば確かに便利だ。そしてオブジェクト指向の考え方からして、そこにあるべきだろう。 でも、 info={name:"タロウ",tel:"090-xxx-xxx"}; for( i in info ){ document.write( i+"="+ i

    Object オブジェクトの prototype に便利メソッドを放り込むのはやめて頂きたい - nazokingのブログ
    tsupo
    tsupo 2005/10/08
    オブジェクト指向の考え方からして、そこにあるべきだろう。でも
  • 1