因为ES6之前,javascript没有class类,于是便有了构造函数。
有人举了一个例子来解释构造函数 ,我觉得蛮贴切的就在这里引用一下,有人想要造一千个金币,并且要每个金币上面刻有不同的编号,最简单的方法就是,造一个金币的模子,然后再各自刻各自的编号, 构造函数就是这个金币的模子,你每次new一下,就是造一个金币。
1、构造函数在创建时,建议首字母大写。普通函数首字母建议小写。
2、构造函数和普通函数的调用方法不同,构造函数需要用new关键字调用。
3、构造函数内部可以使用this关键字,在构造函数内部this指向的是构造出来的新对象。普通函数内部不建议使用this关键字,普通函数内部的this会指向window对象(可能会造成window全局变量或函数的变化)。
4、构造函数一般不需要return返回值,默认构造的对象。普通函数一般需要return内容,不然会报undefined。如果构造函数使用的return,那么返回值会根据return的类型改变。
构造函数使用new关键字以后,会发生以下步骤: var p = new Person() 1、var p = {} 2、Preson.call(p) 3、p._proto_ = Person.prototype 4、执行构造函数 Person 的代码 5、返回 p