1. 利用构造函数创建对象
<script>
//利用构造函数创建对象
//我们需要创建四大天王的对象 相同的属性: 名字 年龄 性别 相同的方法:唱歌
//构造函数的语法格式
/* function 构造函数名() {
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数名(); //调用 */
function mingStar(uname, age, sex, sing) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
var ldh = new mingStar('刘德华', 18, '男');
// console.log(typeof ldh);
console.log(ldh.name);
console.log(ldh['sex']);
ldh.sing('冰雨');
var zxy = new mingStar('张学友', 19, '男');
console.log(zxy.name);
console.log(zxy.age);
// 1. 构造函数名字首字母要大写
// 2. 我们构造函数不需要return 就可以返回结果
// 3. 我们调用构造函数 必须使用 new
// 4. 我们只要 new mingStar() 调用函数就创建一个对象 ldh{}
// 5. 属性和方法前面必须添加 this
</script>
2. 为什么需要构造函数
先看个小案例~
var ldh = {
uname: '刘德华 ',
age: 55,
sing: function() {
console.log('冰雨');
}
}
var zxy = {
uname: '张学友',
age: 58,
sing: function() {
console.log('李香兰');
}
}
那为什么需要构造函数呢?
就是因为我们前面两种创建对象的方式一次只能创建一个对象
因为我们一次创建一个对象,里面很多的属性和法是大量相同的我们只能复制
因此我们可以利用函数的方法重复这些相同的代码我们就把这个函数称为构造函数
又因为这个函数不一样,里面封装的不是普通代码,而是对象
构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面,普通函数封装的