js 连续赋值的简单实现


Posted in Javascript onJune 13, 2016

无意中网上发现的这个问题,预想的结果和真实的结果大相径庭。

var a={n:1}
var b=a;
a.x=a={n:2}
console.log(a.x); 
console.log(b.x);
undefined
Object{n:2}

要是拆开来看,结果就是我所想的那样

var a={n:1}
var b=a;
a={n:2};
a.x={n:2}
console.log(a.x);//Object{n:2}console.log(b.x);//undefined

分析:

a.x=a={n:2}

js的赋值运算是右结合的,上面等同于a.x=(a={n:2})

js的求值运算是从左到右的(PS:和同事讨论,他说是从左到右,我认为是从右到左,最后发现是我错了)

1)a.x=(括号内的最终结果)

   查找a的x属性不存在后在a指向的对象中添加一个属性x,这个x属性要把一个结果赋给它,那好吧,我等着结果

js 连续赋值的简单实现

 

2)因为是要获得括号内的结果,那么a.x就一直等着括号内给他返回结果,所以开始求值a={n:2}得到结果后返回给这个新属性x

js 连续赋值的简单实现

3)回到括号内的a={n:2},a发生指向改变了

js 连续赋值的简单实现

以上这篇js 连续赋值的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
Jquery Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
Jan 17 Javascript
各情景下元素宽高的获取实现代码
Sep 13 Javascript
jquery实现网站超链接和图片提示效果
Mar 21 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
JavaScript学习笔记整理之引用类型
Jan 22 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 Javascript
通俗解释JavaScript正则表达式快速记忆
Aug 23 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
js实现简单的贪吃蛇游戏
Apr 23 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 #Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 #Javascript
JavaScript遍历求解数独问题的主要思路小结
Jun 12 #Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 #Javascript
JavaScript解八皇后问题的方法总结
Jun 12 #Javascript
jQuery遍历json的方法(推荐)
Jun 12 #Javascript
jQuery移动端图片上传组件
Jun 12 #Javascript
You might like
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
PHP防盗链代码实例
2014/08/27 PHP
Yii框架登录流程分析
2014/12/03 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
python 切片和range()用法说明
2013/03/24 Python
python读写文件操作示例程序
2013/12/02 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
init进程的作用
2012/04/12 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
建议书格式
2015/02/04 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
《确定位置》教学反思
2016/02/18 职场文书
党风廉政建设心得体会
2019/05/21 职场文书