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]
相关推荐
Lee川25 分钟前
🚀《JavaScript 灵魂深处:从 V8 引擎的“双轨并行”看执行上下文的演进之路》
javascript·面试
汪汪队长34 分钟前
谷歌浏览器自定义油猴插件
前端
ZFSS36 分钟前
SeeDance Tasks API 的对接和使用
前端·人工智能
睿智的仓鼠37 分钟前
🦞OpenClaw 快速部署及使用指南
前端·人工智能
前端付豪37 分钟前
Nest 项目小实践之图书增删改查
前端·node.js·nestjs
比特鹰38 分钟前
手把手带你用Flutter手搓人生K线
前端·javascript·flutter
大雨还洅下38 分钟前
前端JS: 数组扁平化
javascript
奔跑路上的Me42 分钟前
前端导出 Word/Excel/PDF 文件
前端·javascript
bluceli42 分钟前
JavaScript异步编程深度解析:从回调到Async Await的演进之路
前端·javascript
青青家的小灰灰1 小时前
Vue 3 新标准:<script setup> 核心特性、宏命令与避坑指南
前端·vue.js·面试