yisainan / web-interview

我是齐丶先丶森,收集整理全网面试题及面试技巧,旨在帮助前端工程师们找到一份好工作!更多详见公众号「前端面试秘籍」
MIT License
2.61k stars 507 forks source link

[选择题] 61.(单选题)以下哪—项会对对象 person有副作用? #1039

Open qiilee opened 4 years ago

qiilee commented 4 years ago
const person = {
  name: 'Lydia Hallie', 
  address: {
    street: '100 Main St'
  }
};
Object.freeze(person);
A:person.name = "Evan Bacon" 
B: delete person.address
C: person.address.street = "101 Main St" 
D: person.pet = { name: "Mara"}

答案:C

解析:

便用方法Object.freeze对一个对象进行冻结。不能对属性进行添加,修改,删除。然而,它仅对对象进行浅冻结,意味着只有对象中的直接属性被冻结。如果属性是另一个object,像案例中的address, address中的属性没有被冻结,仍然可以被修改。