0690Name_Not_Found
2015/04/12(日) 08:57:02.29ID:???焦点がずれてるな。サブクラスにする危険性をわかってない。
まずElementsがArrayだとしてjQueryに比べれば大幅にメソッドが足りない。
onとかattrとかきりがないから全部言わないよ?
そこでElementsのサブクラスを作ってメソッド追加しろって言いたいんだろ?
それが危険だという話。
ElementsのサブクラスはArrayでは無くなってしまうから。
なぜなら、
Elementsのサブクラスにhogeというメソッドを作った。
将来のArrayが拡張してhogeというメソッドを作った。
ElementsのサブクラスのhogeとArrayのhogeは別物
つまり、ElementsのサブクラスのはArrayではなくなる。
型あり言語なら型とシグネチャで正しくディスパッチしてくれるが
JavaScriptのような言語では無理
そして問題はまだある。
Elementsのサブクラスを作ったからといって、
queryAllがElementsのサブクラスを返してくれるわけじゃない。
DOMのあらゆるAPIがElementsの代わりに、
Elementsのサブクラスを返すようにモンキーパッチしまくらないといけない。
何かを忘れていると、よくわからないエラーが発生することになる。
危険性があるうえに、既存のメソッドを間違いなく修正するという大変な作業が必要。
サブクラスの仕様を考えただけで全てがうまくいくって考えてるようだが経験と想像力が足りないよ。