任何事物只要找到根源就能很容易的解决,关于this指向问题的一大堆罗里吧嗦的话就不说了。下面只说两件事,秒懂this指向问题。看不懂你来砍我!
第一,必须知道js中作用域的知识
第二,看例子
var x = {
a:10,
c:function () {
alert(this.a)
}
};
var y = {
a:12,
c:function () {
alert(this.a)
}
};
var a = 6;
var z = x.c;
z();//6
x.c();//10
z.apply(y);//12
this指向的实际上是this所在函数执行时刻所处的作用域!简单明了吧,1、看this所在函数什么时候执行的。2、看this所在函数执行时刻在什么作用域。
顺便把apply()函数也带上,apply函数就是更改作用域的。
完事了。
网友评论