开启掘金成长之旅!这是我参与「掘金日新计划 · 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);
//执行方法
teacher.teach();
//增加属性,方法
teacher.address = '北京';
teacher.drink = function () {
console.log('I am drinking beer');
}
console.log(teacher);
//修改对象的属性和方法
teacher.height = 180;
teacher.name = '小坤';
teacher.teach = function() {
console.log('I am teaching HTML');
};
console.log(teacher);
console.log(teacher.teach);
//删除对象的属性和方法
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('李四');