JavaScript中的操作符new与其他面向对象语言中的new机制完全不同。
首先,在JavaScript中并没有所谓的“构造函数”,因为在JavaScrpit中没有类(class)的机制,
即使是被new调用的Function也不属于任何类,他们只是一些普通函数而已。
所以,在JavaScript只用new实现的构造调用。
new操作符最终执行的结果就是初始化一个新创建的对象。、
那么,在用new调用函数,发生构造调用的时候又做了些什么事呢?
- 创建(或者说创建)一个全新的对象。
- 这个新对象会被[[Prototype]]链接。
- 函数调用时的this会绑定到这个新对象上。
- new调用的函数会自动的返回一个创建好的新对象(前提是这个函数没有返回其他对象)。