一个面试题:

这道题主要迷惑的是a.x=a={n:2}是先执行左边还是先执行右边,当然,我相信聪明的你肯定知道,如果不知道,可以通过es6的proxy,refect做个实验:

用Proxy做一个简单的set,get拦截,可以监听对象上的set,get事件。比较有意思的是最后一步骤:get a; set a; set x。

background Layer 1 obj.a.x = obj.a = {n:2} 1.get a 2.set a 3.set x

可以看到是先执行后面的赋值,再执行前面的赋值。知道了赋值顺序,之前问题的答案就比较简单了:

background Layer 1 {n:1} a {n:1} a b {n:1} b a {n:2} {n:1} b a {n:2} x

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字