什么是对象?

  • 代表现实中的某个事物, 是该事物在编程中的抽象
  • 多个数据的集合体(封装体)
  • 用于保存多个数据的容器

为什么要用对象?

  • 便于对多个数据进行统一管理

对象的组成

  • 属性
    • 代表现实事物的状态数据
    • 由属性名和属性值组成
    • 属性名都是字符串类型, 属性值是任意类型
  • 方法
    • 代表现实事物的行为数据
    • 是特别的属性==>属性值是函数

如何访问对象内部数据?

  • .属性名: 编码简单, 但有时不能用
  • [‘属性名’]: 编码麻烦, 但通用

    1. // 创建对象
    2. var p = {
    3. name: 'Tom',
    4. age: 12,
    5. setName: function (name) {
    6. this.name = name
    7. },
    8. setAge: function (age) {
    9. this.age = age
    10. }
    11. }
    12. // 访问对象内部数据
    13. console.log(p.name, p['age'])
    14. p.setName('Jack')
    15. p['age'](23)
    16. console.log(p['name'], p.age)

    问题: 什么时候必须使用[‘属性名’]的方式?

  • 属性名不是合法的标识名

  • 属性名不确定 ```javascript // 创建对象 var p = {}

/情形一: 属性名不是合法的标识名/ /需求: 添加一个属性: content-type: text/json / // p.content-type = ‘text/json’ //不正确 p[‘content-type’] = ‘text/json’

/情形二: 属性名不确定/ var prop = ‘xxx’ var value = 123 // p.prop = value //不正确 p[prop] = value console.log(p[‘content-type’], p[prop]) ```