Skip to content
TOC

先看下下面的代码:

js
var myObj = {
  name : " 极客时间 ", 
  showThis: function(){
    console.log(this)   // this指向 myObj
    function bar(){console.log(this)}  // this 指向 window
    bar()
  }
}
myObj.showThis()

为什么第二个this指向window呢?

答:this 没有作用域的限制,这点和变量不一样,所以嵌套函数不会从调用它的函数中继承 this,而普通函数中改的this就是指向的window。

tips:如果使用了严格模式,普通函数的this为undefined。

js
'use strict'
function a() {
    console.log(this);
}
a();

Released under the CC BY-NC-ND 3.0