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 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
JavaScript 设计模式学习 Singleton
Jul 27 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
Oct 22 Javascript
js循环改变div颜色具体方法
Jun 25 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
Javascript获取表单名称(name)的方法
Apr 02 Javascript
js实现鼠标滑过文字链接色彩变化的效果
May 06 Javascript
form表单转Json提交的方法(推荐)
Sep 23 Javascript
详解Immutable及 React 中实践
Mar 01 Javascript
JavaScript反射与依赖注入实例详解
May 29 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
javascript数组的定义及操作实例
Nov 10 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
关于尾递归的使用详解
2013/05/02 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
JavaScript中的this机制
2016/01/30 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
为python设置socket代理的方法
2015/01/14 Python
python flask中静态文件的管理方法
2018/03/20 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
社会治安综合治理责任书
2015/01/29 职场文书