javascript this的用法

var myObj = {
  myVal : "Hello World",
  func : function() {
     alert(typeof this.myVal);    // 结果为 string
     var self = this;
     function inner() {
       alert(typeof this.myVal);  // 结果为 undefined
       alert(typeof self.myVal);  // 结果为 string
     } 
     inner();
  }
};

myObj.func();

 红色部分的  this指的是什么?

 蓝色部分的  this指的是什么?

 

请详细说明 谢谢

这个好像是我写的那篇文章里面的例子。。。。,看来我没写清楚。

红色部分的this指的是myObj,因为你是用的myObj.func()去调用的,this的值就变成.之前的myObj。

蓝色部分的this指的是全局对象,在浏览器中就是window对象。

如果你把myObj.func()换成下面的写法:
[code="js"]
var f = myObj.func;
f();
[/code]
那么红色和蓝色部分的this就都是指向window对象了。

红色部分的 this指的是 myObj
蓝色部分的 this指的是 func

1.红色部分的 this指的是myObj.
func 是对象(myObj)的属性.所以this指向myObj
2.蓝色部分的 this指的是全局对象.
如果一个 function 不是作为一个对象的属性,那么该 function 被调用的时候,this 的值是全局对象。
这里function inner(),就不是作为对象的属性,而是myObj的func中的内部名为inner的 function,所以this就为全局对象