77777778888888 2023-05-10 11:47 采纳率: 45.5%
浏览 10

第一张图的obj.fn2();为什么是window,直接在对象里传fn2和fn()有什么区别





 var obj = {
            fn1:function() {
                console.log(this); 
            },
            fn2:function(){
                fn3() 
            }
        }
        function fn3() {
            console.log(this); 
        }
        fn3();//this->window
        obj.fn1();//this->obj
        obj.fn2();//this->window


var f = function () {
  console.log(this.x);
}

var x = 1;
var obj = {
  f: f,
  x: 2,
};

// 单独执行
f() // 1

// obj 环境执行
obj.f() // 2


谁能解释一下,第一张图的obj.fn2();为什么是window,直接在对象里传fn2和fn()有什么区别

  • 写回答

1条回答 默认 最新

  • 管那么多 2023-05-10 17:55
    关注

    把原型链的关系图看懂,这个就很清晰了

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月10日