JavaScript中的对象
本文最后更新于:1 个月前
对象基本操作
- 如果我们需要在程序中表示一个人的信息,使用原始值无法表现出“一个整体的”的特点,对象能够完成这个任务
- 对象是JS中的一个复合数据类型,它相当于一个容器,在对象中可以存储各种不同类型的数据
1 |
|
- 对象中可以存储多个类型的数据,对象里存储的数据被称为属性
- 向对象中添加属性:对象.属性名 = 属性值
1 |
|
- 读取对象中的属性对象.属性名
1 |
|
- 修改对象中的属性
1 |
|
- 删除对象中的属性
- 如果读取的是一个对象中没有的属性,会输出Undefined
1 |
|
对象的属性
属性名
-
通常属性名就是一个字符串,所以属性名可以是任何值,没有特殊要求,但是太特殊会不能直接使用,还是强烈建议属性名也按照标识符的规范
1 |
|
-
也可以用符号作为属性名,使用symbol作为属性名
-
获取这种属性时也需要通过symbol获取
-
使用symbol获取的属性,通常是不希望被外界访问的属性
1 |
|
-
使用[]操作属性时,可以使用变量
1 |
|
属性值
-
对象的属性值可以是任意的数据类型,也可以是一个对象
1 |
|
-
in
运算符 -
检查对象是否有某个属性,返回true或false
1 |
|
对象字面量
可以使用字面量的方式创建对象可以直接使用{}来创建对象可以直接向对象里添加属性
1 |
|
枚举对象中的属性
-
枚举属性:将对象中的所有的属性全部获取
-
for-in
语句 -
for(let propName in 对象){...}
-
有几个属性运行几次,并不是所有的属性都可以枚举,比如用符号添加的属性
1 |
|
可变类型
-
原始值都属于不可变类型,一旦创建就无法修改,在内存中不会创建重复的原始值
-
对象是一种可变类型,对象创建完成后,可以任意的添加修改删除对象中的属性
-
注意:如果有两个变量同时指向一个对象,同一个变量修改对象时也会产生影响
-
当两个对象进行比较时,实际比较的是内存地址
变量和对象
-
修改对象
修改对象时,如果有其他变量指向该对象,则所有指向改对象的变量都会受到影响
-
修改变量
修改变量时,只会影响当前的变量
-
在使用变量存储对象时,很容易因为改变变量指向的对象,提高代码的复杂度,所以通常情况下,声明存储对象的变量时会使用const
方法
1 |
|
方法
-
放一个对象的属性指向一个函数,那么我们就称这个函数是该对象的方法,调用函数就被称为调节对象的方法。