読者です 読者をやめる 読者になる 読者になる

わざわざ残す必要もないことを整理とか気にせずに吐き出していく。そんな空間。

JSがマジでわからんとです。

JSがわかんない。動くものは作れるよ。でもさ。情報設計とかモジュール化とか考えるとホントに意味不明になってくる。

JSはイベント駆動,関数型のプロトタイプ継承言語。オブジェクト指向のクラス言語の常識が微妙に通じない。その辺が本当にしんどい。

staticクラスってどうすんの?

var Class_name = function(){
    //something you like
}

staticクラスってどうすんのかなぁって。Math.max()とかあるし、出来ないことはないだろう、と思ってしらべて見ても上記みたいなんしか出てこない。これは、ただの、関数オブジェクトをグローバル変数に突っ込んだだけだよね??

まぁ分かってはいるんだけどこうなるみたいだ。なんかいまいち納得いかん。

クロージャのthisは実行時に決まる。

 クラス作ってさ,コンストラクトして,クラスプロパティセットして,クロージャの生成。モジュール化とかしてると普通にそういうニーズは出てくると思うんだな。んでもさ,クラスメソドでもthisはそのクラスのインスタンスを指す、とは限らないみたいだ。

 A.testというメソドがある。これをBクラスに渡すじゃん。んでB.testを実行。するとtest内のthisはBを指すんよね。クラスメソドをクロージャとして他人に渡したら,OOP的なデータ構造は崩壊する。まぁ「クラス」っていう形で一塊だったものが、「関数」っていう単位でメソド毎に切り分けれるようになってるんだから、元々OOP的なデータの塊とか意識しちゃダメなんだろうけど…辛いよ…

 thisが使えないもんだからクラスプロパティからクロージャ生成したいときは、とりあえず以下みたいな感じにしてる。

this.test = function(){
    var param = this.param;
    return function(){
        return param;//thisはダメでもこれはOK見たい。
    }
}

functionばっかりで気持ち悪いけど一応これは動く。クラスメソド=クロージャ、じゃなくてクラスメソド=クロージャ生成器みたいなイメージ。

 JSほど独学で進めるのが怖い分野はない。なんかいろんな書き方あるしね。どのやり方、どのライブラリ、どのFWが適切なのかとかいろいろチェックしにゃならん。大変すぎる。死ぬしか無い。