非常简单的问题...
想知道什么
“this”变量在 JavaScript 中表示... 谢谢
quirksmode.org 上的解释可能是一个好的开始。
在 stackoverflow 上还有一个 Alan Storm 的很好的答案。
宽松地说,它代表调用函数时点左边的内容:
// inside of f, this = x
x.f(1, 2, 3)
// inside of f, this = c
a.b.c.f(1, 2, 3)
该规则有许多例外情况。
首先,如果你没有点:
// inside of f, this = the global object ("window", if you're in a browser environment)
f(1, 2, 3)
其次,您可以使用方法
call
和/或 apply
显式设置 this
的值:
// Invokes f with this = myVar, not x (arguments 2 an onward are the ordinary arguments)
x.f.call(myVar, 1, 2, 3)
// Invokes f with this = myVar, not x (arguments are passed as an array)
x.f.apply(myVar, [1, 2, 3])
第三,当您使用
new
调用函数时,this
将引用新创建的对象:
// inside of f, this = a new object, not x
new x.f(1, 2, 3)
this
变量指的是当前对象。 例如:
document.getElementById('link1').onclick = function()
{
this.href = 'http://google.com';
}
在 onclick 处理程序中,this 将引用您通过 id 获取的 DOMElement。