读书人

分析一个连续赋值模式的代码

发布时间: 2012-10-30 16:13:36 作者: rapoo

分析一个连续赋值形式的代码

今天小何在群里面提出这样问题:

?

var a={};var a1 = a;c = a.b = a = function(){}alert(c);  //function(){}alert(a1.b);  //function(){}

?

a.b是在对象{}的属性列表里增加一项属性,因为"."的运算优先级高,这个工作在赋值运算之前。其他的工作就如同连续赋值一样,自右向左进行。由于a已经指向了其他对象,a.b变为undefined;a1指向的是原对象,所以a1.b仍然可以访问,且为匿名函数。

?

读书人网 >Web前端

热点推荐