this看起来理解很简单,就是当前对象,那么在使用的时候,经常会犯错误,确定不了this指向是哪个对象。
在函数里面:
function Person()
{
this.name = name;
}
var p = new Person(); //那么此时this指向的就是这个p对象
$.ajax({
....
里面的this指的就是ajax对象。
})
看起来this指的是当前作用域的一个对象,也可以说叫上下文对象。
看了函数的调用,最终的正常调用形式是:
func.call(context,params)
那么这里的context就是this. this指向被调用者。
function show()
{
console.log(this);
}
show();
等价于:
show.call(undefined);
打印出来应该是undefined,但是浏览器的规则是:如果你传入的context是null或者undefined,那么context就是window对象。
this指向被调用者,这里,show()是在window函数下调用的,所以this指向的就是window对象。
this就是你call一个函数时,传入的context对象.