本系列是学习整理js中的面向对象的第2篇,new操作符做了什么
new运算符的作用是创建一个类的实例(类可以是我们自定义的对象类型Person,也可以是具有构造函数的内置对象(如Object,Array,Function))
1 | function Person(age, name) { |
实际经历4个步骤
1 | var instance = new Person(); |
如果把随便一个函数当作构造函数,用new来调用
1 | // 返回值类型 |
new的实现
1 | function New(fn) { |
无new调用
构造函数也是函数,可以直接调用,为了避免忘记通过new来调用构造函数,导致属性和方法添加在window对象上,污染全局变量,一般会在构造函数中检查当前作用域,这样即使不通过new来生成实例也可以得到正确的结果
1 | function Person(age, name) { |
理解了new的实际作用,就不难理解原型对象的实现了
参考文献: