内部的な特徴
書いていてなんとなく見えてきた。
一部は妄想。
Function.prototypeによる拡張
Function.prototyper的な考え。
機能を取捨選択し、それに応じた関数を呼べば実装されてるといった感じ。
Mixinに近いイメージになるかな。
基本的にやりたい事を単純に実装してもらってそれをどのように呼ぶかなどを肉付けをしていくといった感じで進めていく。
もっといえば空の関数を機能を集約しているFunction.prototypeを使って実装する事が可能になる。
Function解析
多分これが大きいかも。
jsでも名前重要ということを実現させるためfunciton自らが自分自身の内部構造を解析している。
解析の理由は
- 設定を持たせる
という所が大きい。
今のところは
- 関数名
- 引数
ぐらいなんだけどこれはいくらでも応用ができる。
DI的に振る舞おうと思えばいくらでもできるし、存在しない関数をその場で実装なんて事もできる。
最後に
結局、オリジナリティを出すのは容易ではない。
これは音楽とおんなじで「どこまでをオリジナリティと呼ぶのか?」という所がミソかなあ。
音楽でもコード進行をパクってるとか言い出すとキリがないのと同じ。
(さらにサンプリングを否定すると現代のほとんどの音楽は全滅だ)
「一部はパクってるけどその代りもっと使い勝手を良くしたよ」っていうのはオリジナルといえばオリジナルになるんではないかな。
常に世の中に同じ事を考えてる人が3人はいると思っておいた方がいい。
(それを実行できるのは一人いるかいないかだけれども)
とりあえずprototype.js、Mochikit、dojoに比べたら使い勝手なんてまだまだだけどコツコツやっていきますよ。
うくく。