美文网首页
2020-03-28

2020-03-28

作者: 再见噜噜班 | 来源:发表于2020-03-28 21:03 被阅读0次

以下哪一项会对对象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()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象,但不会改变原对象。

相关文章

网友评论

      本文标题:2020-03-28

      本文链接:https://www.haomeiwen.com/subject/hgteuhtx.html