一道稍微综合综合点的JS题,关于with, this, 和call用法?

题目:以下代码执行后输出的值分别是?
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.
慕尼黑的夜晚无繁华
浏览 257回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript