(十)对象
1. 对象
1.1 什么是对象?
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
- 属性:事物的特征,在对象中用属性来表示(常用名词)
- 方法:事物的行为,在对象中用方法来表示(常用动词)
1.2 为什么需要对象?
2. 创建对象
- 使用字面量创建对象
- 使用
new Object
创建对象 - 利用构造函数创建对象
2.1 字面量创建
使用 {}
创建,包含属性和方法,采用键值对表示,创建的对象称为对象字面量。
var obj = {
uname: 'MurphyChen',
age: 18,
sayHi: function () {
console.log('Hi!);
}
}
2.2 使用对象的属性和方法
- 调用对象的属性
// 方法一
objectName.attrName
// 方法二
objectName['attrName'] // 不要忘记引号
- 调用对象的方法
objectName.funcName();//不要忘记括号
2.3 使用 newObject 创建对象
// 创建空对象
let obj = new Object();
//添加属性
obj.uname = 'MurphyChen';
obj.age = 18;
obj.sayHi = function() {
console.log('Hi!');
}
2.4 利用构造函数创建对象
前两种创建对象的方法,每次都只能创建一个对象。但需要多个具有相同属性和方法的对象的时候,就需要使用构造函数来创建。
构造函数将相同的属性和方法封装在一个函数里。
构造函数语法:
// 定义
function ConFuncName(params) {
this.attr = value;
this.methods = function() {};
}
// 调用
let obj = new ConFuncName(params);
- 构造函数名单词首字母均大写
- 函数不需要返回值
举例
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
}
let ldh = new Star('刘德华', 18, '男');
let zxy = new Star('张学友', 19, '男');
console.log(typeof ldh); // object
console.log(ldh.sex); // 男
console.log(zxy.name); // 张学友
构造函数的实质
构造函数相当于创建了一个抽象的类,使用关键字 new
创建一个对象的过程称为类的实例化,对象是具体的。
new 关键字的执行过程
- 在内存中创建一个空的对象;
this
指向这个空对象;- 执行构造函数里面的代码,给空对象添加属性和方法;
- 返回此对象。
3. 遍历对象
for...in
可以对数组和对象进行遍历。
语法
for (const key in obj) {
console.log(key); // 遍历属性名
console.log(obj[key]); // 遍历属性值
}