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
联想
校招火热招聘中
官网直投

相关推荐

3 9 评论
分享
牛客网
牛客企业服务