09-构造函数
09-构造函数
构造函数又叫做创建类
语法:
function 函数名(){
JS语句;
调用的方法:
var obj = new 函数名();
注意:
1.调用的时候在函数名前面加上new,如果不加new就是调用一般的函数
2.构造函数实际上就是创建一个函数,只不过我们通常会将这个函数的函数名的首字母大写
3.要想让一个函数达到构造函数的效果在调用的时候必须加上new
代码实现
1
执行效果如下图所示:
构造函数的执行流程
1.立即创建一个对象
2.将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象作为返回值返回
关于this
1.当以函数形式调用的时候,this指的是window
2.当以方法形式调用的时候,谁调用指的就是谁
3.当以构造函数的形式调用的时候,this指的就是新创建的那个对象
问题
大家可以看一下这段代码,执行起来没有问题,但是咱们没创建一个对象,就会创建一个sayName方法。也就是说创建1000个对象,就会创建1000个方法,这样做十分浪费空间,那么咱们就要想一种解决方法,下面我提供了一种解决方法。
将函数定义在外部
1
咱们使用这种方法就可以实现,创建1000个对象,但是只有一个方法。