关于对象赋值问题

下面代码执行后,foo.x的值是?(    )

1  var foo = {n: 1};

2  var  bar = foo;

3  foo.x = foo = {n: 2};

求foo.x的值


1,2行foo和bar都是指向对象{n:1}

3行foo.x = foo = {n:2}

相当于foo = {n:2}, foo.x = foo;

即是将对象{n:2}的引用赋给foo.x

对象{n:2}被foo.x所引用,但是没有初始化

所以返回foo.x是undefined

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 924评论 0 0
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,375评论 0 7
  • 雷声殷殷风声紧, 一夜无梦到天明。 音容渺茫天涯路, 忘却人间未了因。
    pan朵阅读 90评论 0 0
  • JavaScript的应用 一、使用JS完成注册页面表单校验 1.需求分析 之前我们已经使用弹出框的方式实现了表单...
    我可能是个假开发阅读 646评论 1 8