js中的对象

对象 object:属性和属性值是以键值对key/value的形式存在的

对象中可以存储任意类型的数据;它用于存储各种键值集合和更复杂的实体

定义对象:

let obj = {
    key1:value1,
    key2:value2,
    ...
}

示例1:

let school ={
    // 键值对 key:value
    name:'云和数据',
    address:'电子商务产业园',
    date:'2014',
    // 对象中的方法 属性值是一个函数,则称之为对象的方法
    success:function(){
        console.log('月薪过万');
    }
}

let student = {
    name:"张三",
    age:19,
    sex:'男',
    hobby:'学习',
    sport:'跑步',
    say:function(classify){
        console.log(`会说${classify}`);
    }
}

console.log(school);
console.log(student);

// 访问对象中的属性 obj.key 获取属性值
console.log(school.name); // 云和数据
console.log(school.address);// 电子商务产业园
console.log(student.name); //张三
// 调用执行对象中的方法
school.success();// 月薪过万
student.say('八国语言');// 会说八国语言

// 修改对象的属性值 obj.key = newValue 本质就是重新赋值
student.name = '李四';
student.age = '48';
console.log(student.name);// 李四
console.log(student.age);// 48

示例2:

// 声明一个空对象
let computer={};
// 手动给对象添加属性并赋值
computer.name='ASUS';
computer.price=4666;
computer.print=function(){
    console.log('连接打印机');
}
console.log(computer);
console.log(computer.name);
computer.print();

image-20220410120922034

遍历对象:

let student = {
    name:'张三',
    age:18,
    sex:'男',
    feature:"一个帅小伙",
    say:function(){
        console.log('会哦唱歌');
    }
}
//  访问对象中不存在的属性 , 得到的结果是 undefined 
console.log(student.dd);// undefined
console.log(student.name); // 张三

for - in:

let student = {
    name:'张三',
    age:18,
    sex:'男',
    feature:"一个帅小伙",
    say:function(){
        console.log('会哦唱歌');
    }
}
for(let key in student){
    //  key 是对象中的属性  key 是自定义的变量名
    console.log(key);
    // 获取属性值  如果对象的属性名是一个变量,则需要使用中括号 [] 
    console.log(student[key]);
}

💡访问对象中的属性和方法时 , . 运算符和 [ ] 的区别:

  • . 运算符: . 的左边是对象, . 右边是具体的属性名,不能使用变量
  • [ ] 中括号: [ ] 的前边是对象, [ ] 里边是一个字符串类型
let name = student.name;
//[]里的值是对象的属性名
let age = student['age'];
// 如果直接写, 则意味着是一个变量名 ; [] 可以使用变量的形式
let sex = 'sex';
let xingbie = student[sex];
console.log(name,age,xingbie);

student.say();
student['say']();
posted @ 2022-04-11 17:16  秋弦  阅读(110)  评论(0编辑  收藏  举报