题目:以下代码执行后输出的值分别是?varo={x:10,foo:function(){with(this){functionbar(){alert(x);alert(this.x);}varx=20;(function(){bar();})();bar.call(this);}}}o.foo();我不明白的:第二行x:10和直接写x=10有什么区别吗?第四行with(this),作用应该是延长作用域链?那在本题中具体是什么情况?在varx=20后,再次调用bar()为什么第一个是undefined,第二个是20?感觉这道题考察的蛮多的,拿出来和大家讨论下。题目测试结果:undefined,undefined,undefined,20.
添加回答
举报
0/150
提交
取消