JS基础--对象

嗨!我是前端小M~~

对象

数组是一组数据有序的集合,对象是一组数据无序的集合。对象拥有自己的属性(使用的数据)和方法(拥有的操作)

A.创建对象

字面量: let obj = { };

构造函数: let obj = new Object { };

let object ={
name:"xiaoming",
age:20,
talk:function(){
   }
}

1)键值对 如果键(key)对应的值是function --->指对象的方法,否则指对象的属性

2)访问对象的属性

     a .点访问法 obj.name

     b. obj[str] ; let str = "变量名"; console.log( obj[str] ); 或 console.log(obj["变量名"]);

3) 访问对象的方法 obj.talk( ); 访问对象不存在的属性 undefined

4)赋值:

    a.添加对象的属性: obj.key = value; ====>obj.money = 2000;

    b.对象属性的修改 :obj.key =newValue; 对象属性重新赋值

    c. 删除 delete:delete obj.age;

    ES6当属性键与值刚好一样,可以把属性冒号后面的删掉----------->语法糖

访问对象的键和值

const obj = {
    name:"zhangsan",
    age:18,
    gender:"male",
    gayFriend:{
        name:"lisi",
        age:20
    }
}

1) for (let key in obj){
    console.log("key:", key);        //key: name  key: age   key: gender   key: gayFriend
    console.log("value:", obj[key]); //value: zhangsan   value: 18  value: male  
                                     //value: {name:  'lisi', age: 20 }
}

2)let arr = Object.keys(obj);
console.log(arr);      //[ 'name', 'age', 'gender', 'gayFriend' ]
for(let item of arr) {
    console.log(obj[item]); // zhangsan  18 male  { name: 'lisi', age: 20 }
}

3)访问对象的嵌套:
console.log(obj.gayFriend.name);  //lisi

对象的解构

1.let {name} = {name:"zhangsan"};
console.log(name);  //zhangsan

2.let obj1 = {
    name:"zhangsan",
    password:123
}
let obj2 = {
    password: 456,
    name: "lisi"
}
function login ({name,password}){
    console.log(`密码${password},姓名${name}`);
}
login(obj1);     //密码123,姓名zhangsan
login(obj2);     //密码456,姓名lisi 

this 作为对象的方法调用,this指向该对象

posted @ 2020-12-13 16:45  瓜豆のO泡  阅读(71)  评论(0)    收藏  举报