DOM要素にprototypeでメソッドを追加すれば、自分自身にアニメーションなどの振る舞いを定義することができると考えたのですが、どうでしょう?ナンセンスですか?
かつてprototype.jsというライブラリがあって、これはその名の通り、prototypeにどんどこメソッドを追加して機能を追加していくライブラリだった(はず)。しかし、意図せずfor(in)で列挙されてしまう「プロトタイプ汚染」と呼ばれる問題があったりして、いつしか時代はprototype.jsからjQueryへ。
まぁ、今は当時と状況が違って、モダンなブラウザであれば「汚染」せずに「拡張」できるらしいけど、そんな経緯があるから、既存オブジェクトのprototypeにごちゃごちゃ足すのは「邪道」となり、自分専用の名前空間を作って、そこに機能を実装していくライブラリが主流になったんじゃなかろうか
模範解答だな
たとえば、jqueryでいうところの$(’#hoge’)には、animateというメッソドが約束されているんだよね。
みんなの回答 2 件
かつてprototype.jsというライブラリがあって、これはその名の通り、prototypeにどんどこメソッドを追加して機能を追加していくライブラリだった(はず)。
しかし、意図せずfor(in)で列挙されてしまう「プロトタイプ汚染」と呼ばれる問題があったりして、いつしか時代はprototype.jsからjQueryへ。
まぁ、今は当時と状況が違って、モダンなブラウザであれば「汚染」せずに「拡張」できるらしいけど、
そんな経緯があるから、既存オブジェクトのprototypeにごちゃごちゃ足すのは「邪道」となり、
自分専用の名前空間を作って、そこに機能を実装していくライブラリが主流になったんじゃなかろうか
たとえば、jqueryでいうところの$(’#hoge’)には、animateというメッソドが約束されているんだよね。
関連するトピックス