博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题:对象的存储形式 和 . 运算符的优先级
阅读量:7052 次
发布时间:2019-06-28

本文共 512 字,大约阅读时间需要 1 分钟。

var a = {n: 1}; // a保持对{n:1}对象的引用var b = a; // b保持对{n:1}对象的引用a.x = a = {n: 2}; // a的引用被改变a.x 	// --> undefinedb.x 	// --> {n: 2}1、.运算符优先,a.x此时保持对堆内存{n: 1}的引用,也就是b也保持对堆内存{n: 1}的引用,于是堆内存{n: 1} => {n: 1, x: undefined},此时a和b还是对原来对象的引用,只不过原来对象增加了x属性2、=从右往左,a = {n: 2},此时a的引用已经变成了{n: 2}这个对象3、a.x=a,此时a.x是保持对{ n: 1, x: undefined}中的x引用,也就是b.x,于是{ n: 1, x: undefined} => {n: 1, x: { n: 2}},即b.x = { n: 2 }复制代码

注意点: 1: 点的优先级大于等号的优先级 2: 对象以'指针'的形式进行存储,每个新对象都是一份新的存储地址-堆内存

转载于:https://juejin.im/post/5cb0466a6fb9a06880143e91

你可能感兴趣的文章
Acdream Path 动态规划
查看>>
手机版开发框架集合
查看>>
Memcache的客户端连接系列(二) Python
查看>>
shell 环境变量
查看>>
安装xampp二三事
查看>>
2019-04-09 SpringBoot+Druid+MyBatis+Atomikos 的多数据源配置
查看>>
分解质因数
查看>>
字符型图片验证码识别完整过程及Python实现
查看>>
js,jquery获取url参数
查看>>
Java基础学习总结(36)——Java注释模板
查看>>
erange.heetian.com 回显任意账号
查看>>
OBJ文件格式简介
查看>>
实验三 有限自动机的构造与识别
查看>>
python的学习笔记之——time模块常用内置函数
查看>>
计算机是如何工作的
查看>>
【c++】必须在类初始化列表中初始化的几种情况
查看>>
阿拉伯数字1与英语字母l造成的代码bug
查看>>
深度学习常见的专业术语
查看>>
2018-2019-2 20165334《网络对抗技术》Exp2 后门原理与实践
查看>>
HTML提交方式post和get区别(实验)
查看>>