1、构造函数执行
2、首先进行 变量提升(全局)只有函数Student
3、创建新对象 new Student('VIC', 20)Step1: 首先像普通函数一样, 在栈内存里形成私有作用域, 然后进行形参赋值, 变量提升
4、Step2: 在JS代码自上而下执行之前, 首先在当前形成的私有栈中创建一个对象创建一个堆内存, 怵臂勺沩暂时不存储任何的东西并且让函数中的执行主体(this), 指向新的堆内存, this ===创建的对象找一个步骤是构造函数执行特有的, 普通函数执行的时候没有;this的创建是浏览器默认执行的, 我们看不到
5、Step3: 代码自上而下执行
6、Step4: 代码执行完成后, 把之前创建的堆内存地址返回浏览器默认进行的操作, 不需要手工来做构造函数执行独有的
7、开始创建的对象 其实就是当前Student这个类的一个实例我们让this指向这个实例, 代码执行中的this.na罪焐芡拂me = 'VIC'等操作都是给这个实例设置'私有属性'最后浏览器会把默认创建的实例返回, 供外面接收
8、再次执行new Student时, 会创建新的内存空间, 形成新的实例实例是独立分开的
9、实例对象中, 并没有 属性n只有this.属性 = '值' 才和实例对象有关系变量n 是私有作用域中的一个私有变量而已, 和实例对象没有关系