new 一个构造函数的执行流程
new 在执行时,会做下面这四件事:
(1)开辟内存空间,在内存中创建一个新的空对象。
(2)让 this 指向这个新的对象。
(3)执行构造函数里面的代码,给这个新对象添加属性和方法。
(4)返回这个新对象(所以构造函数里面不需要 return)。
因为 this 指的是 new 一个 Object 之后的对象实例。于是,下面这段代码:
// 创建一个函数
function createStudent(name) {
var student = new Object();
student.name = name; //第一个name指的是student对象定义的变量。第二个name指的是createStudent函数的参数。二者不一样
}
可以改进为:
// 创建一个函数
function Student(name) {
this.name = name; //this指的是构造函数中的对象实例
}