通过new关键字方式调用的函数被认为是构造函数。
在构造函数内部,this指向新创建的对象Object。
return 表达式对构造函数的影响。
当构造函数没有return表达式时, 隐式的会返回this对象。
当构造函数有return表达式时,但返回不是对象时,return不会对构造函数造成影响。如
function Fun() {
this.a = 1000;
return 2;
}
var fun = new Fun(); // 这里的fun不是2,而是构造一个新的对象。
alert(fun.a);
当构造函数 return一个对象时,会对构造函数造成影响
function Fun() {
this.a = 1000;
return {foo : 10};
}
var fun = new Fun(); // 这里的fun是{foo:10}
alert(fun.a); // 没有 undefined
alert(fun.foo); // 10