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]
相关推荐
明月_清风1 分钟前
OAuth2 与第三方登录的三个阶段(2010–至今)
前端·安全
We་ct2 分钟前
LeetCode 138. 随机链表的复制:两种最优解法详解
前端·算法·leetcode·链表·typescript
dcmfxvr3 分钟前
【无标题】
java·linux·前端
无巧不成书021812 分钟前
React Native 深度解析:跨平台移动开发框架
javascript·react native·react.js·华为·开源·harmonyos
SoaringHeart21 分钟前
Flutter 顶部滚动行为限制实现:NoTopOverScrollPhysics
前端·flutter
zhanglu511625 分钟前
Java Lambda 表达式使用深度解析
开发语言·前端·python
全栈前端老曹25 分钟前
【Redis】发布订阅模型 —— Pub/Sub 原理、消息队列、聊天系统实战
前端·数据库·redis·设计模式·node.js·全栈·发布订阅模型
广州华水科技33 分钟前
单北斗GNSS变形监测系统应用与安装指南
前端
coding随想34 分钟前
深入Modernizr源码:揭秘CSS伪类检测的底层逻辑
前端·css
奋斗吧程序媛36 分钟前
vue3初体验(1)
前端·javascript·vue.js