js中对象的使用

114 阅读5分钟

定义

对象 世界万物皆对象 只要可以抽象出一个概念的都是对象 对象是引用数据类型,是保存复杂数据类型的容器,它是多个属性(数据)和方法(功能)的集合 它允许动态的添加和删除属性

对象的三种创建方式

1.字面量

         var obj = {
          属性名1:属性值,
          属性名2:属性值,
          方法:function(){}
         }
       //获取对象
       console.log(obj.属性名)
       //调用方法
       obj.方法名()

     // 1.创建一个电脑对象
        // 有颜色(color)、重量(weight)、品牌(brand)、型号(type)等属性,
        // 有看电影(watch)、听音乐(listen)、打游戏(play)和敲代码(coding)等方法。
        // 题目描述:
        // 颜色、重量、品牌、型号是属性;看电影、听音乐、打游戏、敲代码是方法,
        // 在调用方法时分别打印 “我在看电影/听音乐/打游戏/敲代码”
        
        // 创建一个对象
        var computer = {
            color:'黑色',
            weight:'2kg',
            brand:'拯救者',
            type:'R7000P',
            watch:function(){
                console.log('我在看电影');
            },
            listen:function(){
                console.log('我在听音乐');
            },
            play:function(){
                console.log('我在打游戏');
            },
            coding:function(){
                console.log('我在敲代码');
            }
        }
        // 获取对象
        console.log(computer.color);  //黑色
        console.log(computer.type);   //R7000P
        // 调用方法
        computer.watch()

2.new Object()创建

  • 创建空对象
var obj = new Object()
  • 给对象添加属性和方法
    • 对象名.属性名=属性值
    • 对象名.方法名=function(){}
    • 输出对象的属性 obj.属性名
    • 调用对象的方法 obj.方法名()
    var computed = new Object()
        computed.color='黑色';
        computed.weight='2kg';
        computed.brand='拯救者'
        computed.type='R7000P';
        computed.watch=function(){
            console.log('我在看电影');
        };
        computed.listen=function(){
            console.log('我在听音乐');
        };
        computed.play=function(){
            console.log('我在打游戏');
        };
        computed.coding=function(){
            console.log('我在敲代码');
        }
        console.log(computed.color);
        // 调用方法
        computed.watch()
注意:
  • Object() :第一个字母大写
  • new Object() :需要 new 关键字
  • 使用的格式:对象.属性 = 值;

3.构造函数创建对象

  • 在 JavaScript 中,用 new 关键字来调用的函数,称为构造函数。构造函数首字母一般大写
语法:
第一步:封装函数,将公有的属性和方法抽出来封装到函数中,创建构造函数
function 构造函数名(形参1,形参2,形参3){
    this.属性名1=参数1
    this.属性名2=参数2
    this.属性名3=参数3
    this.方法名=函数体
}
第二步:实例化对象  调用函数
var obj = new 构造函数名(实参1,实参2,实参3)
    // 书写一个构造函数,用来创建学生对象,学生对象包括的内容有:
    // 姓名(name)、学号(id)、性别(sex)、年级(grade)、打招呼(sayHi)
    // —— 在弹出框中提示:“你好我是XXX”,其中XXX代表对象的name属性值
    // 1.封装构造函数
    function Person(name,id,sex,grade){
        this.name=name
        this.id=id
        this.sex=sex
        this.grade=grade
        this.sayHi =function(){
            alert('你好我是'+this.name)
        }
    }
    // 2.通过new关键字调用函数
    var p1 = new Person('zs',18,'男','六')
    console.log(p1.name);
    p1.sayHi()

对象的使用

  • 对象的属性

    • 对象中存储具体数据的 "键值对"中的 "键"称为对象的属性,即对象中存储具体数据的项
  • 对象的方法

    • 对象中存储函数的 "键值对"中的 "键"称为对象的方法,即对象中存储函数的项
  • 访问对象的属性

    • 对象里面的属性调用 : 对象.属性名 ,这个小点 . 就理解为“ 的 ”
    • 对象里面属性的另一种调用方式 : 对象[‘属性名’],注意方括号里面的属性必须加引号
  • 调用对象的方法

    • 对象里面的方法调用:对象.方法名() ,注意这个方法名字后面一定加括号
  • 变量、属性、函数、方法总结

    属性是对象的一部分,而变量不是对象的一部分,变量是单独存储数据的容器

    • 变量:单独声明赋值,单独存在

    • 属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征

    • 方法是对象的一部分,函数不是对象的一部分,函数是单独封装操作的容器

    • 函数:单独存在的,通过“函数名()”的方式就可以调用

    • 方法:对象里面的函数称为方法,方法不需要声明,使用“对象.方法名()”的方式就可以调用,方法用来描述该对象的行为和功能。

构造函数注意事项:

  • 构造函数约定首字母大写
  • 函数内的属性和方法前面需要添加 this ,表示当前对象的属性和方法。
  • 构造函数中不需要 return 返回结果
  • 当我们创建对象的时候,必须用 new 来调用构造函数

构造函数和对象区别★★★

  • 构造函数,如 Person(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类(class)
  • 创建对象,如 new Person(),特指某一个,通过 new 关键字创建对象的过程我们也称为对象实例化

new关键字的作用★★★

  • 1.在内存中创建了一个对象
  • 2.对象内部的__proto__指向构造函数的prototype属性
  • 3.构造函数中的this指向这个创建的新对象
  • 4.执行构造函数内部的代码,给新创建的对象添加属性和方法
  • 5.如果构造函数有返回值 该返回值是非空对象 则返回该对象,否则返回新创建的对象

对象遍历★★★★★

for...in 语句用于对数组或者对象的属性进行循环操作。

//语法
for(var 变量名 in对象名){
      console.log(变量名)  //遍历属性名
      console.log(对象名[变量名])   //遍历属性值
}