Featured image of post (十)JavaScript对象

(十)JavaScript对象

(十)对象

1. 对象

1.1 什么是对象?

在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。

对象是由属性和方法组成的。

  • 属性:事物的特征,在对象中用属性来表示(常用名词)
  • 方法:事物的行为,在对象中用方法来表示(常用动词)

1.2 为什么需要对象?

2. 创建对象

  • 使用字面量创建对象
  • 使用 new Object 创建对象
  • 利用构造函数创建对象

2.1 字面量创建

使用 {} 创建,包含属性和方法,采用键值对表示,创建的对象称为对象字面量。

1
2
3
4
5
6
7
var obj = {
    uname: 'MurphyChen',
    age: 18,
    sayHi: function () {
        console.log('Hi!);
    }
}

2.2 使用对象的属性和方法

  1. 调用对象的属性
1
2
3
4
// 方法一
objectName.attrName
// 方法二
objectName['attrName'] // 不要忘记引号
  1. 调用对象的方法
1
objectName.funcName();//不要忘记括号

2.3 使用 newObject 创建对象

1
2
3
4
5
6
7
8
// 创建空对象
let obj = new Object();
//添加属性
obj.uname = 'MurphyChen';
obj.age = 18;
obj.sayHi = function() {
    console.log('Hi!');
}

2.4 利用构造函数创建对象

前两种创建对象的方法,每次都只能创建一个对象。但需要多个具有相同属性和方法的对象的时候,就需要使用构造函数来创建。

构造函数将相同的属性和方法封装在一个函数里。

构造函数语法:

1
2
3
4
5
6
7
// 定义
function ConFuncName(params) {
    this.attr = value;
    this.methods = function() {};
}
// 调用
let obj = new ConFuncName(params);
  • 构造函数名单词首字母均大写
  • 函数不需要返回值

举例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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 关键字的执行过程

  1. 在内存中创建一个空的对象;
  2. this 指向这个空对象;
  3. 执行构造函数里面的代码,给空对象添加属性和方法;
  4. 返回此对象。

3. 遍历对象

for...in 可以对数组和对象进行遍历。

语法

1
2
3
4
for (const key in obj) {
    console.log(key); // 遍历属性名
    console.log(obj[key]); // 遍历属性值
}
Powered by GitHub.Pages
Built with Hugo
主题 StackJimmy 设计
© Licensed Under CC BY-NC-SA 4.0