以下哪一项会对对象person有副作用
const person = {name:'lydia hallie'};
Object.seal(person);
- A.
person.name="Evan Bacon"
- B.
person.age=21
- C.
delete person.name
- D.
Object.assign(person,{age:21})
答案: A
解释:
没有副作用的意思是,除了变量定义的时候赋予的值,其他任何表达式都不会改变任何变量的值。一个函数或者表达式的结果仅仅体现在其输入的参数和返回值上,输入值不变,则返回值不变。函数除了返回一个值,不会有其他作用。
题中,Object.seal()
方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要原来是可写的就可以改变。,所以A选项可以改变原属性,sealed
的对象不能使用delete
删除属性。Object.assign()
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象,但不会改变原对象。