javascript new

newは「オブジェクトのインスタンスを返却せよ」と、
コンストラクタに命令する演算子

new使用時と不使用時の比較

var hello = function(name) {
  this.name = name;
  this.say = function() {
    return 'hello! ' + this.name; 
  }
}

var hello1 = new hello('太郎');//new使用
var hello2 = hello('太郎');//new不使用

//new使用
console.log(hello1);//hello {name: "太郎"}
console.log(hello1.say());//hello! 太郎

//new不使用
console.log(hello2);//undefined
console.log(hello2.say());//エラー

helloに代入する無名関数にはreturnが記述されていない。
jsの関数は、returnが明記されていないと、undefinedが返る。
しかし、newを用いると、returnが無くても、
自動的にオブジェクトのインスタンスが返る。