同じ動作をするコードも、いくつかの書き方ができるわけで。
その時々によって良し悪しがあるんやろうけど、この場合の違いはなんやろ?っていうメモ。
オブジェクトでやるパターン
var test1 = {
     init: function(){
          this.make();
     },
     make: function(){
          console.log('Make something 1.');
     }
};
test1.init(); // Make something 1.
この○○.init()って、プラグインとか各所でよく見るなぁと思ってて、実際の使い所は?って思ってたんです。
いいところ
実装する内容を、1つのグローバル変数に閉じ込められる点かな?たぶん。
よくないところ
↓でも書くけど、newしてインスタンス増やして拡張していくとか、そういうのができない。
functionでやるパターン
var test2 = function(){
     this.init = function(){
          this.make();
     };
     this.make = function(){
          console.log('Make something 2.');
     };
}
/*
test2.init();
って書いても動かないので
*/
var test3 = new test2();
test3.init(); // Make something 2.
いいところ
クラスとしてnewしてnewしたい場合はこっち。
最初のパターンでnew test1()ってしたくても、test1は関数じゃないのでできないんね。
よくないところ
newする必要がないなら冗長になるだけ。
つまり
プラグインなど単体で動作するものを定義したい場合は、Objectパターン。
プログラムとしてクラスを定義したい場合は後者のfunctionパターン。
というように理解したけどあってるのかしら?
Oreilly本でも読み返したら載ってるかしら。