为什么需要构造函数
因为我们一次创建一个对象,里面有很多属性和方法是相同的,我们只能复制
因此可以利用函数的方法,重复这些相同的代码,我们将这个函数称为构造函数
又因为这个函数不一样,里面封装的不是普通代码,而是对象
构造函数就是将对象里相同的属性和方法抽象出来封装到函数里
语法格式
function 构造函数名( ){
this.属性= 值;
this.方法= function( ){ }
}
new 构造函数名( );
f function Star(unname, age, sex) { this.name = unname; this.age = age; this.sex = sex; } var ldh = new Star("柳大华", 18, "男");//调用函数返回的是一个对象 console.log(ldh.name);
1.构造函数首字母大写
2.不需要return 就可以返回结果
3.调用必须使用new
4.只要调用函数就会返回(创建)一个对象
5.属性和方法前都必须加this
创建方法和普通函数的区别
在于调用方法不同
普通函数是直接调用,而构造函数使用new 关键字调用 返回的是一个对象
构造函数的执行流程
new 在执行时做的四件事
1.立即创建一个新的空对象 per
2.this指向这个空对象,在构造函数中可以使用this来引用新建的对象 this.name=per.name 构造函数里的this就是新建的对象
this.name=name表示将name值添加到新建的per对象里
3.逐行执行函数中的代码,给这个空对象添加属性和方法
4.将新的对象作为返回值返回
在Person构造函数中,为每一个对象都添加了一个sayName方法
目前我们的方法是在构适函放内部创建的,
也就是构造函数每执行一次就会创建一个新的sayName方法
也是所有实例的sayName都是唯一的
这样就导致了构造函数执行一次就会创建一个新的方法,
执行1000次就会创建10000个新的方法,而且都是一模一样的
这是完全没有必里,占内存,完全可以使所有的对象共享同一个方法
解决方法:
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 15天,点击查看活动详情