JavaScript 构造函数

通过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

原文地址:https://www.cnblogs.com/shouwangzhe-/p/3988542.html