1. 定义对象有两种方式:1.使用字面量方式直接定义 2.使用构造函数创建对象
方式一:
<!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>
</head>
<body>
<script>
// 使用字面量方式直接定义对象
let zhangsan = {
// 定义对象的属性
name:'张三',
age:20,
gender:'男',
// 定义对象的方法
eat:function(){
// 如何在方法里面,使用当前对象自己的成员(对象的成员:包括属性和方法)。
// 通过this.当前成员
console.log(`大家好!我叫${this.name},我在吃饭`);
},
sing:function(){
console.log(`大家好!我叫${this.name},我在唱歌`);
},
sayHi:function(){
console.log(`大家好!我叫${this.name},今年${this.age}岁,性别是${this.gender}`);
}
}
console.log(zhangsan);
// 通过对象名.属性的方式,可以操作对象的属性
zhangsan.name = '张杰' //修改属性
console.log('姓名:'+zhangsan.name); //获取属性
// 通过对象名.方法()的方式,执行对象的方法
zhangsan.eat()
zhangsan.sing()
zhangsan.sayHi()
</script>
</body>
</html>
方式二:
<!DOCTYPE html>
<html>
<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>使用构造函数创建对象</title>
</head>
<body>
<script>
// 构造函数,也是一个函数,通常情况下该函数的首字母要大写
// 在该函数的内部,使用this关键字定义构造函数的成员
// 构造函数也称之为:类,类就是类型
function Student(name,age,gender){
// 构造函数也是函数,所以,也能传递参数
// 定义属性
this.name = name
this.age = age
this.gender = gender
// 定义方法
this.sayHi = function(){
console.log(`大家好!我叫${this.name},今年${this.age}岁,性别是${this.gender}`);
}
}
// 类只需要定义一次,但是可以根据该类创建出无数个对象
let s1 = new Student('张三',20,'男')
let s2 = new Student('李四',18,'女')
let s3 = new Student('王五',22,'男')
console.log(s1);
console.log(s2);
console.log(s3);
s1.sayHi()
s2.sayHi()
s3.sayHi()
// 总结:如果只需要一个对象,可以采用字面量方式直接定义
// 如果需要无数个相同格式的对象,最好的做法是先定义构造函数,然后通过该构造函数创建对象。
</script>
</body>
</html>