使用new操作符创建对象时,构造函数总会默认返回this所引用的对象。
如果在构造函数中不给this添加任何属性,将会返回“空”对象,这里的“空”,指的是除了从构造函数的原型中所继承的成员以外。
构造函数隐式的返回this。但是我们可以根据需要返回任意其他对象。
1 var Person = function(){ 2 3 this.name = 'jack'; 4 5 var that = {}; 6 7 that.name = 'Tom'; 8 9 return that; 10 11 } 12 13 var o = new Person(); 14 15 console.log(o.name); // 'Tom'
正如上面所见,可以在构造函数中自由的返回任意对象。
试图返回并非对象的值,虽然不会造成错误,但是函数会忽略该值,相反,将会返回this所引用的对象。