1.对象
1.1什么是对象
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象由属性和方法构成
- 属性:事物的特性,在对象中用属性来表示(常用名词)
- 方法:事物的行为,在对象中用方法来表示(常用动词)
1.2为什么需要对象
保留一个值时,可以使用变量,保留多个值时,可以使用数组。 保留一个人的完整信息呢? 例如,将某个人的个人信息保存在数组中的方式为: var arr = ['张三', '男', 28, 178]; JS中的对象表达式结构更加清晰。张三的个人信息在对象中的表达结构如下: person.name = '张三'; person.sex = '男'; person.age = 28; person.height = 178;
2.创建对象的三种方式
在JavaScript中,现阶段我们可以采用三种方式来创建对象(object):
- 利用字面量来创建
- 利用new Object来创建
- 利用构造函数来创建
变量、属性、函数、方法总结
- 变量:单独声明赋值,单独存在
- 属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征
- 函数:单独存在,通过“函数名()”的方式就可以调用
- 方法:对象里面的函数称为方法,方法不需要声明,使用“对象.方法名()”就可以调用,方法用来描述该对象的行为和功能
2.1利用字面量创建对象
对象字面量:就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法。{}里面采取键值对的形式表示
- 键:相当于是属性名
- 值:相当于是属性值,可以是任意类型的值(数字、字符串、布尔值、函数)
对象的调用
- 对象里面的属性调用:对象.属性名
- 对象里面属性的另一种调用:对象[‘属性名’],要注意属性必须加引号
- 对象里面方法的调用:对象.方法名(),注意方法后面要加括号
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>利用对象字面量来创建对象</title>
<script>
var obj = {
uname: '张三',
age: 18,
sex: '男',
sayHi: function() {
console.log('hi');
}
}
console.log(obj.uname);
console.log(obj['age']);
obj.sayHi();
</script>
</head>
<body>
</body>
</html>
2.2利用new Object创建对象
跟前面学的new Array()创建数组的原理一致 调用方式跟字面量创建相同
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>利用new Object创建对象</title>
<script>
var obj = new Object();
obj.name = '张三';
obj.age = 18;
obj.sex = '男';
obj.sayHi = function() {
console.log('hi');
}
console.log(obj.name);
console.log(obj['age']);
obj.sayHi();
</script>
</head>
<body>
</body>
</html>
2.3利用构造函数创建对象
构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总和new运算符一起使用,我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>利用构造函数创建对象</title>
<script>
function Star(name, age, sex) {
this.uname = name;
this.age = age;
this.sex = sex;
this.sing = function(song) {
console.log(song);
}
}
var ldh = new Star('刘德华', 18, '男');
var zxy = new Star('张学友', 19, '男');
console.log(typeof ldh);
console.log(ldh.uname);
ldh.sing('冰雨');
console.log(ldh['sex']);
console.log(zxy.age);
zxy.sing('李香兰');
</script>
</head>
<body>
</body>
</html>
|