求解这段JS代码的输出结果

新手上路,请多包涵

以下代码:var a = 1;

function callback(){

console.log(a,this)

}
function fn(c){

var a = 2
c()

}
fn(callback)最终执行结果为反馈该题
A: 1,fn
B: 2,fn
C: 1,window
D: 2,window

为什么是C呢?

阅读 1k
1 个回答

答案是c
首先,问题是fn(callback)最终执行结果为:
所以fn(c)根本没执行,只执行了这一部分

var a = 1;

function callback(){

console.log(a,this)
}

所以第一个答案是1;
然后this是 JavaScript 语言的一个关键字。
它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。在这里属于全局性调用。
这个this比较复杂,可以看这篇文章了解下http://www.ruanyifeng.com/blo...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏