开发者社区> 问答> 正文

关于javascript闭包与this的一个小问题

function inner() {
    console.log(this);
}
 
function outer() {
    inner();
}
 
outer();
 
outer.call({});

答案是什么?为什么?

展开
收起
a123456678 2016-07-15 11:34:09 1894 0
1 条回答
写回答
取消 提交回答
  • 我经过运行测试的答案是顶层的window 对象。

    解释:

    function inner() {
    
        console.log(this);
    
    }
    
     
    
    function outer() {
    
        // 这种形式的呼叫,只是呼叫到了全局的inner函数,而inner函数在浏览器中属于window对象的method   
        inner();
    
    }
    
     
    
    outer();
    
    // call 方法只是改变了outer方法的对象,所以outer方法所属对象是Object
    outer.call({});
    2019-07-17 19:56:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载