构造函数:
- 因为我们一次创建个对象,里面很多的属性和方法是大量相同的我们只能复制
- 因此我们可以利用函数的方法重复这些相同的代码我们就把这个函数称为构造函数
- 又因为这个函数不一样,里面封装的不是普通代码,而是对象
- 构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面
2.3利用构造函数创建对象
- 构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new运算符一起使用。
- 我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。
构造函数语法格式:
<script>
//构造函数语法格式
function 构造函数名(){
this.属性=值;
this.方法=function(){}
}
new 构造函数();
</script>
注意:
- 1.构造函数名字首字母要大写
- 2.构造函数不需要return 就可以返回结果
- 3.我们调用构造函数 必须使用new
案例代码:
<script>
// //构造函数语法格式
// function 构造函数名(){
// this.属性=值;
// this.方法=function(){}
// }
// new 构造函数();
function Star(uname,age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
}
var ldh = new Star('刘德华',18,'男'); //对用函数返回的是一个对象
//console.log(typeof ldh);
console.log(ldh.name);
console.log(ldh.sex);
console.log(ldh.age);
var zxy = new Star('张学友',28,'男'); //对用函数返回的是一个对象
console.log(zxy.name);
console.log(zxy.sex);
console.log(zxy.age);
//1.构造函数名字首字母要大写
//2.构造函数不需要return 就可以返回结果
//3.我们调用构造函数 必须使用new
</script>
2.4构造函数和对象
- 构造函数:如Stars() ,抽象了对象的公共部分,封装到了函数里面,它泛指某-大类( class )
- 创建对象:如new Stars0 ,特指某一个,通过new关键字创建对象的过程我们也称为对象实例化
3.new关键字:
new关键字执行过程
- 1.new构造函数可以在内存中创建了一个空的对象
- 2. this就会指向刚才创建的空对象
- 3.执行构造函数里面的代码给这个空对象添加属性和方法
- 4.返回这个对象
<script>
//new关键字执行过程
function Star(uname,age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang){
console.log(sang);
}
}
var ldh = new Star('刘德华',18,'男');
</script>
4.遍历对象
<script>
//遍历对象
var obj = {
name: 'pink老师',
age: 18,
sex: '男'
}
for(var k in obj){
console.log(k); //k 变量 输出 得到的是 属性名
console.log(obj[k]); //obj[k] 得到是 属性值
}
//我们使用for in 里面的变量 我们喜欢写k 或者 key
</script>
小结:
- 1.对象可以让代码结构更清晰
- 2.对象复杂数据类型object.,
- 3.本质:对象就是一-组无序的相关属性和方法的集合。
- 4.构造函数泛指某一大类,比如苹果,不管是红色苹果还是绿色苹果,都统称为苹果。
- 5.对象实例特指一个事物 ,比如这个苹果、正在给你们讲课的pink老师等。
- 6. fr..in语句用于对对象的属性进行循环操作。