https://blog.youkuaiyun.com/lemisi/article/details/101107909
function base() {
this.str = "ceshi";
}
var a = new base();
console.dir(a);
结果如下:
 {
this.str = "ceshi";
return [1];
}
//重新赋值
Base.prototype.constructor = function Other() { };
var b = new Base();
console.dir(b);
可以看到 constructor的值已经发生改变,重新赋值成功。
function Base() {
this.str = "ceshi";
return [1]; **//注意这行改变了**
}
Base.prototype.constructor = function Other() { };
var b = new Base();
console.dir(b);
当返回的是数组的时候,就覆盖了构造的实例。
new 是一个运算符,可以创建对象,初始化实例。
例如:new Date(),new Array()
new 关键字会进行如下的操作:
1、创建一个空的简单JavaScript对象(即{});
2、链接该对象(设置该对象的constructor)到另一个对象 ;
3、将步骤1新创建的对象作为this的上下文 ;
4、如果该函数没有返回对象,则返回this。
详细解释如下:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/new