求大佬指点哈!一道关于变量作用域和上下文的JavaScript面试题

这是一道昨天的面试题:
varnum=10;
varobj={
num:8,
inner:{
num:6,
print:function(){
console.log("num:"+num+",this.num:"+this.num);
}
}
}
num=888;
下面语句输出什么?
obj.inner.print();
varfn=obj.inner.print;fn();
(obj.inner.print)();
(obj.inner.print=obj.inner.print)();
感谢解答~
阿波罗的战车
浏览 241回答 2
2回答

互换的青春

1:8886(this为inner,this.num自然为6)2:888888(this指向window,this.num和num都是888)3:(obj.inner.print)();自执行函数等价于obj.inner.print()4:返回一个函数再调用,等价于(function(){})()所以this指向window
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript