js的构造函数
构造函数: 构造函数只是一些使用new操作符时被调用的函数 ----- 来自《你不知道的js》
new关键字
new操作符执行时进行的操作: (来自MDN new操作符)
- 创建一个空的简单JavaScript对象(即{});
- 链接该对象(即设置该对象的构造函数)到另一个对象 ;
- 将步骤1新创建的对象作为this的上下文 ;
- 如果该函数没有返回对象,则返回this
构造函数返回值
- 如果不写return -> 直接返回默认创建的新对象
function foo(){
var obj = {'name': 'kenan'};
}
var result = new foo();
result; // ==> foo对象
- 如果返回this -> 直接返回默认创建的新对象
function foo(){
var obj = {'name': 'kenan'};
return this;
}
var result = new foo();
result; // ==> foo对象
- 如果返回的是基本数据类型: 直接返回默认创建的新对象
function foo(){
var obj = {'name': 'kenan'};
return 1000;
}
var result = new foo();
result; // ==> foo对象
- 如果返回到是对象 -> 直接把这个对象, 返回给外界, 外界接受到的就是这个函数内部返回的对象
function foo(){
var obj = {'name': 'kenan'};
return obj;
// return [1,2,3] // 若是直接返回数组[1,2,3], result输出[1,2,3]
}
var result = new foo();
result; // ==> {'name': 'kenan'}