对象
对象的基本概念
数组:是有序的元素集合 ,数组用于存放一组数据,比如一个班级所有人的名字,一个班级所有人的成绩。
函数:封装一段重复的代码,只要声明一次,就可以多次调用。
对象:是一组无序的键值对的集合。
- 事物的特征在对象中用属性来表示。
- 事物的行为在对象中用方法来表示。
创建对象
对象字面量
1 | var o = {}; |
通过Object构造函数创建
1 | var hero = new Object();//创建一个空的对象 |
操作对象的属性
设置对象的属性
1 | //语法 对象名.属性 = 值; |
获取对象的属性
1 | //语法: 对象名.属性 |
操作对象的属性
.语法
获取对象属性的语法:对象.属性
- 如果有这个属性,直接返回属性值
- 如果没有这个属性,返回undefined
设置对象的属性的语法:对象.属性 = 值
- 如果对象有这个属性,修改这个属性
- 如果对象没有这个属性,添加这个属性
[]语法
也叫关联数组的方式,其实说白了就是把对象当成数组看待。在中括号中可以是一个变量或者是字符串。
获取对象属性:对象['下标'](把对象的属性当成下标)
设置对象的属性:对象['下标'] = "值";
二者的区别:当属性名是一个字符串存储在变量中的时候,只能使用关联数组的方式。
遍历对象
通过for..in语法可以遍历一个对象
1 | for(var key in obj) { |
批量创建对象
使用工厂函数创建对象
优点:可以同时创建多个对象
缺点:创建出来的没有具体的类型,都是object类型的
构造函数
构造函数 ,是一种特殊的函数。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
- 构造函数首字母要大写(推荐做法)。
- 构造函数要和new一起使用才有意义。
- 构造函数的作用是用于实例化一个对象,即给对象添加属性和方法。
new在执行时会做四件事情
1 | 1. new会创建一个新的空对象,类型是Teacher |
总结:创建对象的几种方式
1 | 1. new Object() |
值类型与引用类型
值类型:简单类型,变量在存储的时候,存储的是值本身。
引用类型:复杂类型,变量在存储的时候,存储的是复杂数据的地址。
值类型与引用类型赋值特征
1 | // 值类型 |
值类型与引用类型参数传递
1 | var num = 10; |
1 | //测试1 : |
结论:简单类型存储的是值本身,复杂类型存储的是地址,引入如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。