标签:
由于javascript是解释型语言,所以this只有在执行中才能确定。
在实践中我们可以总结出this的规律:
一、this指向当前方法所属的实例
1、例如:function test(){
console.log(this);}
test();
此时我们发现this指向window,因为test()是定义在window里边的方法,即我们可以这样调用window.test(),也就是说test是window的方法。
2、test.prototype.add=function(){
console.log(this);}
var tt=new test();
tt.add();
此时,我们定义了一个实例tt,add是实例tt的一个方法,我们会发现this指向tt。
3、结合juqery使用
我们常常见到:$("#xx").click(function(){
console.log(this);
});
此时this是指向$("#xx")实例的,有兴趣可以抽出源代码看看$()是jquery的一个工厂方法,返回的是一个实例。
上面的例子,click方法属于$("#xx")实例的因此,click内部的this指向$("#xx")。当click调用回掉方法时,会使用fn.apply(this),因此我们在回掉方法打印出来的this是指向$("#xx")的。
标签:
原文地址:http://www.cnblogs.com/hhxx123/p/4487259.html