javascript对象

对象

对象

  • 原生对象是JavaScript中专门用于描述复合类型数据的一种数据类型(即对象)
  • 复合类型数据本身是一个整体,改数据包含多个基本数据类型的数据,比如一个商品有商品名、价格、分量、该商品就是一个对象,就是复合数据类型。 由多个基本数据数据构成一个整体,这个整体就是对象。就是一个商品。

创建对象

  • 对象的创建方式:

    • 使用字面量创建:{ }

      let / var / const 对象名 = { }
      
    • 创建空对象:new Object()

      • 通过Object来创建对象:是JavaScript中所有对象的基类。

    练习2:

            //通过Object创建一个对象,该对象包含,bookid、bookName、publishing三个属性,包含setBook(name):修改bookName属性值,setPublishing(publish):修改publishing属性值
    
            let obj = new Object();
            obj.bookId=`001`
            obj.bookName=`三国`
            obj.publishing=`商务出版社`
    
            obj.setBookName = function(name) {
               this.bookName = name   //this代表当前对象obj         
            }
    
            obj.setpublishing = function (publishing) {
                this.publishing = publishing            
            }
            obj.showBookInfo = function () {
                console.log(`图书编号`,this.bookId);
                console.log(`图书名字`,this.bookName);
                console.log(`图书出版社`,this.publishing);
                
            }
            obj.showBookInfo()
            console.log(`-------------------------`);
            obj.setBookName(`水浒传`)
            obj.setpublishing(`机械工业`)
            obj.showBookInfo()
    
          
            console.log(obj);
    
    
  • 利用构造函数创建对象

    - function 构造函数名(【参数】){
    
          this.属性名 = 属性值
    
          this.方法名 = fuchtion(【参数】){
              方法体语句
    
          }
    
      }
    
1.创建一个空的对象
var obj = new Object();
    var obj={};//字面量形式,推荐使用

2.创建一个带有数据的对象
var obj = {
    属性名1:属性值1,(逗号结束)
}
3.使用构造函数:new构造函数名—(【参数】)---重点难点
  function 构造函数名(【参数】){
      this.属性名 = 属性值
      this.函数名 = function(【参数】){
          函数体语句
      }
}




例子:
         var obj = new Object();
         obj.name = `包包大人`;
         obj.sex = ``;
         obj.age = 23;
         obj.height = 179;
         obj.weight = 160;

        var obj = {
            name:"包包大人",
            sex:``,
            age:23,
            height:179,
            weight:160,
        }
        console.log(obj);
  • 注意:
    • 属性名其实是一个字符串类型(引号可以省略不写)
    • 属性名又称为键,属性值又称为值。合起来成为键值对,他们是成对出现的

对象的属性

  • 属性是指该对象中的一个数据。属性名是该数据的名字或类型,属性值是指该数据本身。**属性就是对象的一个数据,属性值就是数据本身 **

获取对象的某个属性值

对象名.属性名
对象名["属性名"]//必须是双引号,单引号不行

  var obj = {
            name:"包包大人",
            sex:``,
            "age":23,
            height:179,
            weight:160,
            eat:function(){
                console.log(`包包在吃包子`)
            }
        }



        console.log(obj);

        //获取对象的某个属性
        console.log(obj.age);
        console.log(obj["age"]);

修改或添加一个属性

  对象名.属性名 = 属性值
//修改对象某个属性
        obj.hobby=`csgo`
        obj.age=25;
        console.log(obj);

  • 注意:如果改属性名在对象中已经存在,那么就是修改数据,如果不存在,则添加新的属性名和属性值。

对象的遍历

  • 通过for-in循环来遍历对象

  • 语法:

    for(var 变量名 in 对象名){
    //for-in每次都会把当前遍历的属性名赋值给变量名,需要手动通过属性名找到对应的属性值,
        console.log(变量名);//属性名拿到的是每一个属性名,是一个string类型的数据
        console.log(obj[prop]);// 拿到每个属性名对应的属性值            
            }
    }
    例子:
       var obj = {
                name:"包包大人",
                sex:``,
                "age":23,
                height:179,
                weight:160,
            }
         for(var prop in obj){
                console.log(prop);//prop拿到的是每一个属性名,是一个string类型的数据
                console.log(obj[prop]);//拿到每个属性名对应的属性值
    
                
            }
    

    对象的属性或方法的访问方式,对象名[‘属性名或方法名’]

        let people = {
                id:`116011`,
                name:`玛卡巴卡`,
                age:'23',
                show:function(){
                    console.log(`姓名:`,this.name);
                    // return 123;
                }
            }
    
            for (let i in people) {
                console.log(i+`:`+people[i]);
          
            }
            console.log(`***********************************`);
            console.log(people['name']);
            console.log(people['age']);
            console.log(people[`id`]);
            // console.log(people[`show`]());
            people['show']()//调用
    
    

in运算符

  • 判断对象中是否存在某个属性或方法

    语法:

     console.log('Address' in people);//判断是否有Address这个成员
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值