自定义构造函数创建对象
// 1. 自定义: 需要程序员自己定义,js内部没有
// 2. 构造函数: 本质上依然是一个函数,作用也是用来创建对象的(函数需要我们自己定义)
// 3. 自定义构造函数: 程序员自己定义的一个用来创建(声明)对象的函数
//为什么还要学习自定义构造函数创建对象?(前面的内置构造函数,字面量)
//娓娓道来:
// 内置构造函数(字面量)创建的对象,适用于创建单个对象或者数量少的对象
// let zs = {}
// let zs = new Object();
// 如果要创建多个对象,那么就需要通过自定义的方式了(不推荐使用内置构造函数了)
如何通过自定义构造函数创建对象?(重点)
// 语法:
// function 函数名(形参1, 形参2) {
// //设置属性
// this.属性名 = 形参1;
// this.属性名 = 形参2;
// //设置方法
// this.方法名 = function() {};
// this.方法名 = function() {};
// }
举例说明:
// 通过自定义构造函数创建zs对象
// zs对象有哪些属性:
function People(uername, userage) {
//属性
this.uname = uername;
this.age = userage;
//方法
this.eat = function() {
console.log('正在吃饭饭...');
}
this.sing = function() {
console.log('正在唱歌中...');
}
}
//通过People构造函数创建对象
//通过构造函数创建对象就要加new关键字
let zs = new People('zs', 23);
let ls = new People('ls', 18);
let ww = new People('王五', 89);
console.log(ls);
console.log(zs);
console.log(ww);
自定义构造函数的注意事项:
//a): 自定义构造函数就相当于是一个公共的模板(生产对象的模子)
//b): 通过自定义构造函数创建的对象,如何访问对象的属性和方法?
// 对象.属性 对象.方法
//c): 如果一个函数中没有设置返回值,那么该函数的默认返回值就是undefined
//d): 如果希望给某个对象单独设置属性或方法,则可以直接通过对象.的方式设置
//e): 自定义构造函数命名一般都是以帕斯卡命名法(单词首字母大写)