Skip to main content

对象

Q:delete如何使用?

  • A:

    const obj={name:'test',age:12}
    const res=delete obj.name;
    console.log(res)//true;
    • 返回值:boolean类型,true——删除成功,false——失败。

    注意:无法删除值类型。

Q:Object.freeze是什么?怎么用?

  • A:Object.freeze使得无法添加、删除或修改对象的属性(除非属性的值是另一个对象)。

    Object.freeze(targetObj)

    注意:仅 对对象进行 冻结,意味着只有 对象中的 直接 属性被冻结。

    const person = {
    name: "Lydia Hallie",
    address: {
    street: "100 Main St"
    }
    };
    Object.freeze(person);

    //依旧可以被修改
    person.address.street = "101 Main St"

Q:如何判断一个对象是否被冻结?

  • A:使用Object.isFrozen检查

Q:如何不让对象添加新的属性?

  • A:

    • 使用Object.seal

      const person = { name: "Lydia Hallie" };

      Object.seal(person);
      //可以修改其值
      person.name = "Evan Bacon"
      //不可以对对象添加新的属性
      person.age = 21
      //不可以对对象删除属性,依旧可以访问其值
      delete person.name
      //无法修改
      Object.assign(person, { age: 21 })