对象的基本操作

64 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天,点击查看活动详情

对象的基本样子

键值对的方式,以逗号隔开,对象里面的函数我们称为方法,也可以说工具类的方法

var teacher = {
    name: '张三',
    age: 32,
    sex: 'male',
    height: 170,
    weight: 130,
    teach: function() {
        console.log('I am teaching JavaScript');
    },
    smoke: function() {
        console.log('I am smoking');
    },
    eat: function() {
        console.log('I am having a dinner')
    }
}

对象的增删改查

//查看对象里的几个属性
    console.log(teacher.name);//张三
    console.log(teacher.age);//32
    console.log(teacher.weight);//130
//对象里面访问方法,打印的是他对应的键值
console.log(teacher.teach);

8c8537ee9e664c1e6beabfb1eba0173.png

//执行方法
teacher.teach();

f62fee5a0f68e83e859bc8f822db3e0.png

//增加属性,方法
  teacher.address = '北京';
  teacher.drink = function () {
        console.log('I am drinking beer');
    }

    console.log(teacher);

a724abc028c77bc42985afcb525ed79.png

//修改对象的属性和方法
    teacher.height = 180;
    teacher.name = '小坤';
    teacher.teach = function() {
        console.log('I am teaching HTML');
    };

    console.log(teacher);
    console.log(teacher.teach);

527c7e538df2dfc3313aeffc2452082.png

//删除对象的属性和方法
    delete teacher.name;
    delete teacher.age;
    delete teacher.weight;
    delete teacher.teach;
 //注意的是删除方法的时候带括号 会去执行而不会去删除
 delete teacher.teach(); //执行这个方法

利用对象中方法去控制weight的变化,这里可以借助this,这里的this指的是对象的本身

    var teacher = {
        name: '张三',
        age: 32,
        sex: 'male',
        height: 170,
        weight: 130,
        teach: function() {
            console.log('I am teaching JavaScript');
        },
        smoke: function() {
            teacher.weight--;
            console.log(teacher.weight);
        },
        eat: function() {
            teacher.weight++;
            console.log(teacher.weight)
        }
    }

    teacher.smoke(); //129
    teacher.smoke(); //128
    teacher.eat(); //129
        smoke: function() {
            this.weight--;
            console.log(teacher.weight);
        },
        eat: function() {
            this.weight++;
            console.log(teacher.weight)
        }

案例

    var attendance = {
        students: [],
        join: function(name) {
            this.students.push(name);
            console.log(this.students);
        },
        leave: function(name) {
            var idx = this.students.indexOf(name);
            if (idx !== -1) {
                this.students.splice(idx, 1);
            }
            console.log(this.students);
        }
    }
    attendance.join('张三');
    attendance.join('李四');
    attendance.join('王五');
    attendance.leave('李四');

28aa9ee0ad51069552e0ac695247ddd.png