您现在的位置:首页 --> 查看专题: 赋值
var a = {n:1};
a.x = a = {n:2};
alert(a.x); // --> undefined
看 jQuery 源码 时发现的这种写法。以上第二句 a.x = a = {n:2} 是一个连续赋值表达式。这个连续赋值表达式在引擎内部究竟发生了什么?是如何解释的?
直奔代码: var a = {x: 1}; a.x = a = { }; alert(a.x); // --> undefined 来自 JE: 写了 10 年 JavaScript 未必全了解的连续赋值运算. clue 的评论已经从 ECMA 规范分析了具体原因,下面尝试更直观的说明此问题。 对于连续赋值语句,我们经常会这样理解: var a = b = 1; // 等价: var a; a = b = 1; 上面的理解很容易看出 var a = b = 1; 会造成 b 泄漏到上层作用域,有可能生成全局变量。 根据直觉,我们可能会推断: a [...
[ 共2篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[69] Java开发岗位面试题归类汇总
-
[66] Go Reflect 性能
-
[65] 如何拿下简短的域名
-
[64] IOS安全–浅谈关于IOS加固的几种方法
-
[61] Oracle MTS模式下 进程地址与会话信
-
[60] 【社会化设计】自我(self)部分――欢迎区
-
[60] android 开发入门
-
[50] 图书馆的世界纪录
-
[49] WEB系统需要关注的一些点
-
[47] Twitter/微博客的学习摘要
赞助商广告