看了一些關于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實在想不出來了 唯一能想到的就是語法本身就不對?
JS中 一個關于this指向的問題
慕田峪4524236
2018-08-18 08:09:08