basyura's blog

あしたになったらほんきだす。

new

関数が new 演算子を伴って呼び出されていて、戻り値がオブジェクトではなかった場合には、this (新しく生成されたオブジェクト) が代わりに返されることになる。
javascript the good parts - P.37

オブジェクトではないもの

数値、文字列、真偽値、null、undefined

オブジェクトでないものを返してみる

var Cat = function() {
  this.say = function() {
    print('nya')
  }
  return 1;
}

var cat = new Cat();
cat.say(); //=> nya

オブジェクトを返してみる

var Cat = function() {
  this.say = function() {
    print('nya')
  }
  return {say : function(){print('bow')}}
}
var cat = new Cat();
cat.say(); //=> bow

使い道は分からないんだけど、proxy や factroy 的な事ができる??