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 相关文章推荐
jquery加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
jQuery的:parent选择器定义和用法
Jul 01 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 Javascript
微信小程序选择图片和放大预览图片功能
Nov 02 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
postman+json+springmvc测试批量添加实例
Mar 31 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
JavaScript实现Tab选项卡切换
Feb 13 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php 获取完整url地址
2008/12/20 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php格式化日期和时间格式化示例分享
2014/02/24 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
图片翻转效果具体实现代码
2014/01/09 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
详解Python中的__init__和__new__
2014/03/12 Python
python简单获取数组元素个数的方法
2015/07/13 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python爬取m3u8连接的视频
2018/02/28 Python
Python实现简单http服务器
2018/04/12 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
python实现小球弹跳效果
2019/05/10 Python
python日志logging模块使用方法分析
2019/05/23 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
学习雷锋精神演讲稿
2014/05/10 职场文书
特教教师先进事迹
2014/05/21 职场文书
清明节演讲稿
2014/05/27 职场文书
影子教师研修方案
2014/06/14 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书