JS中 一个关于this指向的问题

看了一些关于this指向的帖子 对帖子上的问题进行了改进 于是用帖子的方法回答不出来了

function foo() {
        console.log(this)
    }    var obj = {
        a: 2,
        foo:foo
    };
    obj.foo()

这是帖子上的原题   我理解是 foo:foo 就是把foo函数赋值给obj的foo方法 所以obj调用方法的时候 this就指向自身了  于是我就想  如果我把题改成


function foo() {
        console.log(this)
    }    var obj = {
        a: 2,
        foo:foo()
    };
    obj.foo


执行结果是不是一样呢?然后经过我的分析 我认为 这个代码段是等价于下面的

var obj = {
        a: 2,
        foo:console.log(this)
    };
    obj.foo

问题1  第2个代码段 是不是等价于第3个代码段 这个想法有没有问题

问题2 第2 第3个代码段 console出来的结果 为什么this会指向window

实在想不出来了  唯一能想到的就是语法本身就不对?


慕田峪4524236
浏览 642回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript