js中的this与其它编程语言中的不同,js中的this指向的对象不是固定的,而是可以改变的(通过function对象的call、apply、bind,jQuery的proxy等可以改变this指向)。以下是this的默认指向:
- 定义在全局作用域中的普通函数中的this指向window对象(严格模式下本条无效,参见后面严格模式的说明)
- 事件处理函数中的this指向触发事件的标签元素
- 构造函数中的this指向当前正在创建的对象(严格模式下必须使用new)
- 原型中的函数内的this指向当前实例
其它框架中的函数内的this都有特定的指向,如jQuery.each(func)中func中的this指向当前迭代的标签元素对象。