-
构造函数需要用到关键字new(new后面一般跟一个函数 new会创建对象,而且创建的这个函数会去调用这个函数)
-
new的详细分析过程
- 第一步,new会创建一个新对象{}
- 第二步,运行构造函数,让内部的this指向创建的对象(用创建的空对象去调用构造函数)
- (1)若返回值return是引用数据那么构造函数返回值就是这个返回值;若返回值不是引用数据,那么这个构造函数返回值就是这个运行完毕之后创建的对象
function fn(a) {
this.a = a
this.b = 20
return 200//返回值不是引用数据,所以是创建的新对象
}
var re = new fn(12)
console.log(re)
function fn(a) {
this.a = a
this.b = 20
return [22,77,55]//返回值是引用数据,所以构造函数的返回值就是这个对象
}
var re = new fn(12)
console.log(re)
- 注意:任何对象都是函数创建出来的,任何对象都有构造函数