【学习 JavaScript】 JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 字符串模板 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语句 JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JS 函数 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 JS 类 JavaScript 类 JavaScript 类继承 JavaScript 静态方法 JS HTML DOM DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JS 高级教程 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JS 浏览器BOM JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JS 库 JavaScript 库 JavaScript 测试 jQuery JavaScript 测试 Prototype JS 实例 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JS 参考手册

JavaScript this 学习笔记

this 是 JavaScript 中一个重要的关键字,它在不同的上下文中具有不同的含义。使用 this 关键字可以访问到当前对象的属性和方法。

作为对象的方法

当函数作为对象的方法被调用时,this 关键字指向该对象。

javascriptCopy Code
const person = { firstName: "John", lastName : "Doe", fullName() { return `${this.firstName} ${this.lastName}`; } } console.log(person.fullName()); // 输出 "John Doe"

作为普通函数

当函数作为普通函数被调用时,this 关键字默认指向全局对象 Window

javascriptCopy Code
function myFunction() { console.log(this); // 输出 Window 对象 } myFunction();

在事件处理程序中

在事件处理程序中,this 关键字指向触发事件的元素。

htmlCopy Code
<button onclick="console.log(this)">点击我</button>

使用 call()apply()

可以使用 call()apply() 方法显式地设置函数调用时的 this 关键字所指向的对象。

javascriptCopy Code
const person1 = { fullName() { return `${this.firstName} ${this.lastName}`; } } const person2 = { firstName: "John", lastName : "Doe" } console.log(person1.fullName.call(person2)); // 输出 "John Doe"

箭头函数中的 this

在箭头函数中,this 关键字始终指向函数定义时的对象,而不是被调用时的对象。

javascriptCopy Code
const person = { firstName: "John", lastName : "Doe", fullName: () => { return `${this.firstName} ${this.lastName}`; } } console.log(person.fullName()); // 输出 "undefined undefined"

以上是 this 关键字在 JavaScript 中的一些常见用法和注意点。需要注意的是,在不同的情况下,this 关键字所指向的对象是不同的,因此需要根据上下文来灵活使用。