JavaScript学习笔记—对象

  • 属性
    • 对象中可以存储多个各种类型的数据,对象中存储的数据成为属性
    • 添加属性或修改属性值:对象.属性名 = 属性值
    • 读取属性:对象.属性名,如果读取对象中没有的属性返回undefined
    • 删除属性:delete 对象.属性名
let obj = Object();
obj.name = "孙悟空";
obj.age = 18;
obj.gender = "男";
// 修改属性
obj.name = "Tom sun";
// 删除属性
delete obj.name;
console.log(obj.name); // undefined
  • 字面量
    • 直接使用{}创建对象
    • 使用{}创建的对象可以直接向对象中添加属性
    • 语法:
      {
      属性名:属性值,
      [属性名]:属性值,
      ......
      }
let mySymbol = Symbol();
let obj = {
  name: "孙悟空",
  age: 18,
  ["gender"]: "男",
  [mySymbol]: "特殊的属性",
  // 对象
  hello: {
    a: 1,
    b: true
  },
  // 函数(方法)
  sayHello: function(){
    alert("hello");
  }
};
  • 枚举属性
    • 枚举属性,指将对象中的所有的属性全部获取
    • for-in语句,语法:
      for(let propName in 对象){
        语句......
      }
    • 有几个属性就会执行几次,每次执行时,都会将一个属性名赋值给我们所定义的变量

注意:并不是所有的属性都可以枚举,比如:使用符号添加的属性

let obj = {
  name:"孙悟空",
  age:18,
  gender:"男",
  address:"花果山",
  [Symbol()]:"测试的属性" // 符号添加的属性是不能枚举的
};
for(let propName in obj){
  console.log(propName, obj[propName]);
}
  • 可变类型
    • 对象属于可变类型
    • 对象创建完后,可以任意添加删除修改对象中的属性
    • 两个对象进行相等或全等比较时,比较的是对象的内存地址
    • 两个变量指向同一个对象时,通过一个变量修改对象时,对另外一个变量也会产生影响
let obj = Object();
obj.name = "孙悟空";
obj.age = 18;
let obj2 = obj;
obj2.name = "猪八戒";
console.log(obj.name); // 猪八戒
posted @ 2023-01-13 23:16  码农张3  阅读(22)  评论(0)    收藏  举报