関数が 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 的な事ができる??