JavaScript 函数中的 this
❮ JavaScript 函数调用
JavaScript call() 函数 ❯
JavaScript 函数中的 this
什么是this?
在 JavaScript 中,this关键字指的是一个对象。
this关键字指的是不同的对象,具体取决于它的使用方式:
单独使用时,this 指的是全局对象。
在函数中,this 指的是全局对象。
在函数中,如果处于严格模式,this 的值为undefined。
在对象方法中,this 指的是 对象。
在事件中,this 指的是接收该事件的 元素。
像 call()、apply() 和 bind() 这样的方法可以将 this 引用给 任何对象。
注意
this 不是一个变量。
this 是一个关键字。
您无法更改 this 的值。
this 单独使用
单独使用时,this 指的是全局对象。
因为 this 位于全局作用域中。
在浏览器窗口中,全局对象是 [object Window]:
示例
let x = this;
亲自试一试 »
在严格模式下,单独使用时,this也指全局对象:
示例
"use strict";let x = this;
亲自试一试 »
this 在函数中(默认)
在函数中,默认情况下,this 是全局对象。
在浏览器窗口中,全局对象是[object Window]:
示例
function myFunction() {
return this;
}
亲自试一试 »
this 在函数中(严格模式)
JavaScript 严格模式 不允许默认绑定。
在严格模式下,当在函数中使用 this 时,undefined。
示例
"use strict";function myFunction() {
return this;
}
亲自试一试 »
this 在事件处理程序中
在 HTML 事件处理程序中,this 指的是接收到事件的 HTML 元素:
示例
Remove Me!
亲自试一试 »
this 优先级
使用以下优先级顺序来确定 this 指的是哪个对象:
顺序对象因为
1bind()
this 位于一个使用 bind() 调用的函数中
2apply()
this 位于一个使用 apply() 调用的函数中
2call()
this 位于一个使用 call() 调用的函数中
3对象方法
this 位于对象函数(方法)中
4全局作用域
this 位于全局作用域的函数中
❮ JavaScript 函数调用
JavaScript call() 函数 ❯