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 开发者应该注意的9个错误
May 03 Javascript
checkbox全选所涉及到的知识点介绍
Dec 31 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
Jun 23 Javascript
浅谈React 属性和状态的一些总结
Nov 21 Javascript
Vue.js双向绑定操作技巧(初级入门)
Dec 27 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
Dec 28 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 Javascript
js 两数组去除重复数值的实例
Dec 06 Javascript
vue中的自定义分页插件组件的示例
Aug 18 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
vue 基于element-ui 分页组件封装的实例代码
Dec 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
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
常用PHP封装分页工具类
2017/01/14 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
javascript 短路法代码精简
2009/08/20 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
Python中暂存上传图片的方法
2015/02/18 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
python web框架中实现原生分页
2019/09/08 Python
Python测试线程应用程序过程解析
2019/12/31 Python
如何利用Python写个坦克大战
2020/11/18 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
百日安全活动总结
2014/05/04 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
Python实现对齐打印 format函数的用法
2022/04/28 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android