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 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
表单验证插件Validation应用的实例讲解
Oct 10 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
简单实现JavaScript图片切换效果
Nov 28 Javascript
webpack使用 babel-loader 转换 ES6代码示例
Aug 21 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 Javascript
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
全面解析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
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
python如何对实例属性进行类型检查
2018/03/20 Python
Python之文字转图片方法
2018/05/10 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
python yield关键词案例测试
2019/10/15 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
python怎么自定义捕获错误
2020/06/29 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
Python实现一个论文下载器的过程
2021/01/18 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
购买原创艺术品:Zatista
2019/11/09 全球购物
小学生家长寄语
2014/04/02 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
文明旅游倡议书
2015/04/28 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
用python自动生成日历
2021/04/24 Python
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python