module2-03-对象的基本使用

对象的基本使用

一、对象的概念

  • 数组中存入的数据受系啊表限制又必须有固定顺序,而对象可以自定义名称无序的数据

1.1 什么是对象?

  • 生活中万物皆对象,对象就是一个具体的事物,一个具体的事物就会有行为和特征

    • 一部车,一个手机

      • 车市一类,门口停的那辆车才是对象

    • 特征:红色,四个轮子

    • 行为:驾驶、刹车

1.2 js中的对象

  • 生活中对对象的一个抽象

    • js的对象市无序属性的集合

  • 其属性包含基本值、对象或函数。可以把js中的对象想象成键值对,其中值可以实数据和函数

  • 对象的行为和特征

    • 特征---在对象中用属性表示

    • 行为---在对象中用方法表示

二、对象的创建和使用方法

2.1 对象的创建

(1)对象字面量创建

  • 用一个简单的方式使用对象字面量赋值给变量,类似数组([])

  • 内部可以存放多条数据,用逗号分隔最后一个不要加逗号

  • 每条数据都有属性名和属性值:k: v

    • k:属性名

    • v:属性值,可以是任意类型的数据

var person1 = {
   name: 'zs',
   age: 18,
   sex: 'male',
   sayHi: function () {
       console.log('你好')
  }
}

区分属性和方法

  • 属性:对象的描述性特征,一般是名词,相当于定义在对象内部的变量

  • 方法:对象的行为和技能,一般是动词,定义在对象中的函数

(2)其它的创建对象方法

① new Object()创建

  • 使用Object()构造函数创建,其是一种特殊的函数,主要用来在创建对象时初始化对象,即未对象成员赋初始值,要与new运算符一起使用

    1. 构造函数用域创建一类对象,首字母要大写

    1. 构造函数要和new一起使用才有意义

new在执行的时候做的事情

    1. new会在内存中创建一个新的空对象

    1. new会让this指向这个新的对象

    1. 执行构造函数 目的:给这个新对象加属性和方法

    1. new会返回这个新对象

② 工厂函数创建对象

  • 将new Object()过程封装到一个函数中,将来调用函数就能创建一个对象,用于简化代码

function createPerson (name, age, sex) {
   // 创建一个空对象
   var person = new Object()
   // 添加属性和方法,属性可以接受参数的值
   person.name = name
   person.age = age
   person.sex = sex
   per.sayHi = function () {
       console.log('hello')
  }
   // 将对象作为函数返回值
}
var p1 = createPerson('zs', 18, ‘male’)

③ 自定义构造函数

  • 比工厂函数简单

  • 自定义一个创建具体对象的构造函数,函数的内部不需要new一个构造函数的过程,直接使用this代替对象进行属性和方法的书写也不需要return一个返回值

  • 使用时,利用new关键字调用自定义的构造函数即可

  • 注意:构造函数的函数命首字母需要大写,区别于其它普通函数名

function Person (name, age, sex) {
   // 不需要创建{}
   this.name = name
   this.age = age
   this.sex = sex
   this.sayHi = function () {
       console.log('hello')
  }
   // 不需要return
}

 

2.2 对象数据的调用和更改

(1)调用对象内部属性和方法的语法

  • 对象的变量名,打点或者[]一个属性名,得到属性值

  • 对象内部使用this打点/[]调用属性名,this代替对象

  • 调用方法,打点/[]方法名然后()调用

var person1 = {
   name: 'zs',
   sayHi: funtion () {
  console.log(this.name + ': 你好')
}
}
person1.sayHi() // zs: 你好

(2)更改对象内部属性和方法语法

  • 更改属性:先调用属性,再等号赋值

    • o.age = 19

  • 增加新的属性和属性值:点语法或[]新属性名,再等号赋值

    • o.newKey = 'newValue'

  • 删除一条属性:delete关键字

    • delete o.sex

三、对象遍历

  • for in循环也是循环的一种,专门用来遍历对象,内部定义一个k变量,k在每次循环的时候会从第一个开始k接受属性名,执行完推出循环

for (var k in obj) {
   console.log(obj[k]) // 要用[]才能输出变量
}
posted @ 2020-12-06 18:59  叻仔猪  阅读(71)  评论(0编辑  收藏  举报