js箭头函数与普通函数的this指向问题

js箭头函数与普通函数的this指向问题

总结一句话 普通函数的this指向调用者,箭头函数的this指向拥有者。

例子:

js 复制代码
// 常规函数:
hello = function() {
  document.getElementById("demo").innerHTML += this;
}

// window 对象调用该函数:
window.addEventListener("load", hello);

// button 对象调用该函数:
document.getElementById("btn").addEventListener("click", hello);

输出: 普通函数this指向调用者,第一次是window调用,第二次是button调用。

js 复制代码
[object Window]    [object HTMLButtonElement]
js 复制代码
// 箭头函数:
hello = () => {
  document.getElementById("demo").innerHTML += this;
}

// window 对象调用该函数:
window.addEventListener("load", hello);

// button 对象调用该函数:
document.getElementById("btn").addEventListener("click", hello);

输出: 该例子里 箭头函数不论你调用者是谁,拥有者都是window。

js 复制代码
[object Window]     [object Window]
相关推荐
程序哥聊面试2 分钟前
React + TS 初始化新项目报错解决方法
前端·react.js·npm
codeGoogle4 分钟前
2026 年 IM 怎么选?聊聊 4 家主流即时通讯方案的差异
android·前端·后端
_OP_CHEN5 分钟前
【前端开发之JavaScript】(二)JS基础语法上篇:吃透变量 / 类型 / 输入输出
开发语言·javascript·html·ecmascript·前端开发·网页开发
C澒10 分钟前
从单体到分布式:SLDS 2.0 全球物流履约网络架构演进之路
前端·分布式·架构·系统架构·教育电商·交通物流
We་ct13 分钟前
LeetCode 21. 合并两个有序链表:两种经典解法详解
前端·算法·leetcode·链表·typescript
70asunflower15 分钟前
TypeScript / JavaScript / Node.js:现代工程化语言体系全景解析
javascript·typescript·node.js
2501_9419820517 分钟前
Python开发:外部群消息自动回复
java·前端·数据库
墨染青竹梦悠然21 分钟前
基于Django+vue的单词学习平台
前端·vue.js·后端·python·django·毕业设计·毕设
mCell24 分钟前
从一个想法到可发布:我把博客接进 MCP 的完整实践
前端·node.js·mcp
Dragon Wu24 分钟前
Zod 常用案例总结
前端·javascript·typescript