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就为全局对象