构造函数
构造函数的语法格式:
function 构造函数名() {
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数名();
1.构造函数首字母大写
2.构造函数不需要return 就可以返回结果
示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// function King(uname, age, sex) {
// this.name = uname;
// this.age = age;
// this.sex = sex;
// this.sing = function(sang){
// console.log(sang);
// }
// }
// var ldh = new King('刘德华', 18, '男'); //调用函数返回的是一个对象
// ldh.sing('冰雨')
// console.log( typeof ldh); //typeof判断返回类型
// var gfc = new King('郭富城',19,'男');
// console.log(gfc.sex);
// 利用构造函数创建两个英雄对象
function Hero(uname, type, blood) {
this.name = uname;
this.type = type;
this.blood = blood;
this.attack = function(fight) {
console.log(fight);
}
}
var lp = new Hero('廉颇', '力量型', 500);
console.log(lp);
lp.attack('近战')
console.log(lp.name);
console.log(lp.type);
console.log(lp.blood);
var hy = new Hero('后羿', '射手型', 100);
console.log(hy);
hy.attack('远程')
console.log(hy.name);
console.log(hy.type);
console.log(hy.blood);
</script>
</head>
<body>
</body>
</html>
new 关键字
new在执行时会做四件事情
① 在内存中创建一个新的对象
② 让this指向这个新的对象
③ 执行构造函数里面的代码,给这个新对象添加属性和方法
④ 返回这个新对象
相当于
new和构造函数确认了眼神
① 他们生了一个宝宝
② 这个宝宝必须是亲生的 this指向
③ 培养孩子长大成人
④ 孩子长大回报父母
遍历对象属性
for in 语句用于对数组或对象的属性进行循环操作
<script>
// 遍历对象属性
var people = {
age: 18,
name: 'zzy',
sex: '女',
fn: function(){}
}
// for in 遍历对象
// for (变量 in 对象){
// }
for (var k in people) {
console.log(k); // k 变量 输出 得到的是 属性名
console.log(people[k]); /// people[k] 得到的是 属性值
}
</script>
小结
1.对象可以让代码结构更清晰
2.对象是复杂数据类型object
3.本质:对象就是一组无序的相关属性和方法的集合
4.构造函数泛指一大类,比如苹果,有很多品种,都能称为苹果
5.对象实例是指一个特定事物,比如这个苹果
6.for in 可以用于数组或对象的属性进行循环操作