どうも!chuckです。
Underscore.jsを読んでいきます。
今回読むのはこの箇所。
コメントによると、Node.jsのために、後方互換性を考慮した記述っぽい??
デバッグを仕込んで、処理の流れを確認してみます。
コンソールを見るとこの通り。
Cが表示されているので、if文のelseに入っていることが分かります。
では、もう少しif文について見ていきます。
if文が2重になっていますね。
exports と module 、module.exportsという3つの変数?が条件文に入っています。
それぞれ表示させてみます。
結果はこのとおり。
「そんな変数はないよ」とのこと。
exportsやmoduleについて調べてみました。
うーん、分からない…w
まあ、Node.jsがなんちゃらということらしいです。今度はNode環境で実行してみます。
なんか出ました!
ふむふむ、Nodeのための記述なんですね。でも今回はブラウザでの処理に集中します。
ブラウザだとこの処理が行われるわけですね。
rootはグローバルオブジェクトを格納しているので、この記述はアンダースコアをグローバルオブジェクトに追加しています!
コンソールで確認。
代入の前後の状態を表示してみます。
おお!たしかに、undefinedからfunctionへと代入が行われています。アンダースコアには関数が格納されていましたね。
というわけで、今回はとっても大切なアンダースコアのセットについて見ていきました。
ブラウザとNodeだと扱いが異なるということを発見しました。