必要ないとわからない概念、オブジェクト指向

以前C++のクラスというものを知ろうとしたとき、わけがわからなかった。
構造体と関数で同様のことは実現できて、しかもprivate指定するとアクセスが制限される。
好きこのんで機能を制限する意味がわからなかった。
のちに、「隠蔽」に意味があるということを知り、理解が進むようになった。
演算子オーバーロードをエサに更にコーディング経験を積み、
マルチプルインスタンスが簡単に使えて便利だと思うようになった。
グローバル変数を使う罪悪感から逃れるため、というのもある。
JavaScriptのprototypeというのも、調べようと思い立ってはすぐに挫折していた。
自分は元々、Firefox用のスクリプトを書きたくて、見よう見まねでJavaScriptを始めた。
そこでprototypeというのを使う必要がなかったため、ずっと知らないままでいた。
しかし今日、「メソッド付き構造体」のようなものが必要になり、
C++のクラスに相当するものを、JavaScriptではどう書くのかを調べたところ、
prototypeがウソのように親しみやすくそこにあり、勉強を放棄しないことに成功した。
とりあえず自分がやりたかったことは実現できそうだし、
prototypeがわからないために距離を置いていたソースが読めるというのが嬉しい。