1const person = { 2 name: "Lydia", 3 age: 21 4} 5 6const changeAge = (x = { ...person }) => x.age += 1 7const changeAgeAndName = (x = { ...person }) => { 8 x.age += 1 9 x.name = "Sarah" 10} 11 12changeAge(person) 13changeAgeAndName() 14 15console.log(person)
本题为"单选题"
参考答案:
正确选项:C:{name: "Lydia", age: 22}
函数 changeAge
和函数 changeAgeAndName
有着不同的参数,定义一个 新 生成的对象 { ...person }
。这个对象有着所有 person
对象 中 k/v 值的副本。
首项, 我们调用 changeAge
函数并传递 person
对象作为它的参数。这个函数对 age
属性进行加一操作。person
现在是 { name: "Lydia", age: 22 }
。
然后,我们调用函数 changeAgeAndName
,然而我们没有传递参数。取而代之,x
的值等价 new 生成的对象: { ...person }
。因为它是一个新生成的对象,它并不会对对象 person
造成任何副作用。person
仍然等价于 { name: "Lydia", age: 22 }
。
最近更新时间:2024-08-03
题库维护不易,您的支持就是我们最大的动力!