js一道判断this指向的题,求大神解答

var inner = 'window';

function say() {
    console.log(inner);
    console.log(this.inner);
}

var obj1 = (function() {
    var inner = '1-1';
    return {
        inner: '1-2',
        say: function() {
            console.log(inner);
            console.log(this.inner);
        }
    }
})();

var obj2 = (function() {
    var inner = '2-1';
    return {
        inner: '2-2',
        say: () => {
            console.log(inner);
            console.log(this.inner);
        }
    }
})();


say();      
obj1.say();
obj2.say();
obj1.say = say;
obj1.say();
obj1.say = obj2.say;
obj1.say();

#笔试题目#
全部评论
这个题内容非常丰富啊,以下内容可能有误 say();//window(访问全局inner) window(this 指向window)       obj1.say();//1-1(闭包) 1-2(this指向obj1) obj2.say(); // 2-1(闭包)  window(箭头函数没有函数上下文,this指向window) obj1.say = say;   obj1.say();  // window(全局inner不变) 1-2(this指向obj1了)  obj1.say = obj2.say; obj1.say();  //2-1(仍然是闭包)  window(this指向window)
1 回复 分享
发布于 2021-05-15 20:14
普通函数运行时确定,箭头函数编译时确定。谁调用就指向谁
点赞 回复 分享
发布于 2021-07-21 17:39

相关推荐

dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
3 9 评论
分享
牛客网
牛客企业服务