JS的对象除了可以用字面量、new的方法创建,还可以用构造函数创建
使用场景:字面量和new的方法一次只能创建一个对象,当有多个同类的对象需要创建时,这两种方法的代码就会比较冗余,如果使用构造函数把对象里相同的属性和方法封装到函数里,在需要时就可以便捷地实例化对象
function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.skill = function(skill){
console.log(skill);
}
}
var ocean = new Person('ocean',22,'male');
var yury = new Person('yury',22,'female');
console.log(ocean.name, yury.name); //输出ocean yury
ocean.skill('javascript'); //输出javascript
yury.skill('camera'); //输出camera
构造函数的名字首字母要大写,虽然小写也能执行,但这是规范问题
调用构造函数时要用new关键字
new关键字是怎么执行的呢,以下4步
- 在内存里创建一个空对象
- 让this指向这个空对象
- 执行构造函数里的代码,添加属性和方法
- 返回这个对象(所以构造函数不需要return)
个人学习笔记,如有差误欢迎指正