看了一些关于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
实在想不出来了 唯一能想到的就是语法本身就不对?
相关分类