JS面向对象
创建对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//1. 字面量创建对象
//var obj = {}; //创建空对象
// var obj = {
// uname: '张三',
// uage: 15,
// usex: '男',
// sayHi: function () {
// console.log("hi");
// }
// }
//(1)里面的属性或方法采用键值对 键(属性名): 值(属性值)
//(2)多个属性用逗号隔开
//(3)方法:冒号后面是一个匿名函数
//2. 使用对象
//(1)调用对象的属性 对象名.属性名
// alert(obj.uname);
//(2) 对象名['属性名'];
// alert(obj['uage']);
//(3) 调用对象的方法 对象名.方法命名()
// obj.sayHi();
//3. new Object创建对象
// var obj = new Object(); //创建空对象
// obj.uname = '张长旭';
// obj.age = 21;
// obj.sex = '男';
// obj.sayHi = function () {
// alert("我叫" + obj.uname + ",今年" + obj.age + "。");
// }
// alert(obj.uname);
// alert(obj['sex']);
// obj.sayHi();
//4. 利用构造函数创建对象(可创建多个对象)构造函数名大写
function Star(uname, age, sex) {
this.uname = uname;
this.age = age;
this.sex = sex;
this.sk = function (sk) {
alert('我会' + sk);
}
}
var ldh = new Star('刘德华', 21, '男');
alert(ldh.uname);
alert(ldh['sex']);
ldh.sk("唱歌");
var zxy = new Star('张学友', 21, '男');
alert(ldh.uname);
alert(ldh['sex']);
ldh.sk('食屎');
//5.遍历对象
var obj = {
name: "张长旭",
age: 18,
sex: "男"
}
for (var k in obj) { //写k或key
console.log(k); //打印属性名
console.log(obj[k]); //打印属性值
}
</script>
</head>
<body>
</body>
</html>