js私有作用域内调用函数外函数

来源:互联网 发布:linux 80端口转发 编辑:程序博客网 时间:2024/05/15 23:47

这是一道笔试常考的选择题,在js私有作用域(function(){})()里面调用外面的函数,如下面代码:

var a=1;var fn = function(){console.log(a);};(function(){var a=2;fn();console.log(a);})()

输出为1 2;

因为fn函数没用明确指出调用上下文,默认为全局上下文window,所以输出1;(js中只用通过obj.fn()或者一些绑定对象函数来明确指出上下文,没有一般默认为window);

第二个输出2,是因为作用域就近原则。

0 0