【JavaScript】JS对象-属性的遍历,删除对象属性

时间:2022-04-01 04:14:12

JS对象的定义有两种方法,对象的属性使用键值对赋值(let和var都是用作定义变量,有一定的区别,越来越多的公司开始禁止使用var,因为var的是函数作用域,会出现很多意想不到的bug):

let 对象名 = new Object();
 let 对象名 = {}  // 推荐使用

示例:

    let teacher = {
        name:'苍老师',
        age:18,
        height:155,
        weight:90,
        print:function(){
            console.log(this.name);
            
        },
        boyFriends:['张三','李四'],
        husband:{
            name : '张三',
            age : 60,
        },
    };

上面的属性中没有sanwei,这个属性。如果想要添加一个属性叫sanwei该怎么办呐。

直接赋值就行了!如:

    teacher.sanwei = 90;
    console.log(teacher.sanwei);

可以直接添加一个sanwei属性,同时直接赋值90给teacher.sanwei。

如何删除一个属性呢?delete teacher.sanwei或者delete teacher['sanwei']

如何遍历teacher这个对象中的属性呢?使用for in

如:

    for (let key in teacher){
        console.log(key);
    }
    console.log('----------');
    for(let key in teacher){
        console.log(key+':'+teacher[key]);
    }
    console.log('--------');

在teacher这个对象中,定义了一个print方法,使用了this指针

如果再定义一个对象

如:

    let teacher1 = {
        name:'袁老师',
        age : 18,
    };

并赋值一下:

    teacher1.print = teacher.print; // this指向当前对象,指向teacher1
    teacher1.print();

teacher1调用print方法打印的就是当前对象的属性了。


 

如果使用一个变量来存放呢?例如:

    let print = teacher.print;

运行之后,不会打印出任何东西。

因为默认的对象是window对象,window对象没有name这个属性

如果添加一个

window.name = '调用了窗口对象';
就会正常输出name了。