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 相关文章推荐
Js注册协议倒计时的小例子
Jun 24 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
May 03 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
May 02 Javascript
VUE2实现事件驱动弹窗示例
Oct 21 Javascript
Vue中通过Vue.extend动态创建实例的方法
Aug 13 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
微信小程序实用代码段(收藏版)
Dec 17 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
javascript+Canvas实现画板功能
Jun 23 Javascript
Vue中添加滚动事件设置的方法详解
Sep 14 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
php session 检测和注销
2009/03/16 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python生成随机验证码(中文验证码)示例
2014/04/03 Python
跟老齐学Python之??碌某?? target=
2014/09/12 Python
在Python中使用元类的教程
2015/04/28 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python创建字典的八种方式
2019/02/27 Python
python判断自身是否正在运行的方法
2019/08/08 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
大学生简单自荐信
2013/11/10 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
财务稽核岗位职责
2015/04/13 职场文书
个人维稳承诺书
2015/05/04 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
基于Python实现一个春节倒计时脚本
2022/01/22 Python
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android
Java死锁的排查
2022/05/11 Java/Android