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的原型继承
Jul 25 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
setTimeout()与setInterval()方法区别介绍
Dec 24 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
jQuery实现图片滑动效果
Mar 08 Javascript
AjaxUpLoad.js实现文件上传
Mar 05 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
Oct 25 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
使用layui定义一个模块并使用的例子
Sep 14 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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中的PHP_EOL换行符详细解析
2013/10/26 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
javascript常用方法汇总
2014/12/02 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
详解Vue爬坑之vuex初识
2017/06/14 Javascript
js实现随机点名小功能
2017/08/17 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
Python lambda函数基本用法实例分析
2018/03/16 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python交互界面的退出方法
2019/02/16 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
python实现大学人员管理系统
2019/10/25 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
python实现电子词典
2020/03/03 Python
keras:model.compile损失函数的用法
2020/07/01 Python
Python extract及contains方法代码实例
2020/09/11 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
C语言面试题
2013/05/19 面试题
什么是.net
2015/08/03 面试题
农林环境专业求职信
2014/03/13 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
Pandas数据类型之category的用法
2021/06/28 Python