new 函数(): 构造函数执行,它们和普通函数执行的相同点和不同点:
相同点
- 同样会创建私有上下文
- 存在私有变量
- 初始化作用域链
- 初始化this
- 初始化arguments
- 形参赋值
- 变量提升
不同点
- new 执行,浏览器会在当前上下文中,默认创建一个对象(实例对象)
- 在初始化this的时候,会让这个this指向这个实例对象
- 代码中编写this.xxxx = xxx的时候,就是给这个对象添加私有属性
- 函数如果没有返回值,或者返回的是基本类型值,则默认返回创建的实例对象;如果是自己返回的引用类型值,以自己返回的为主。