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]
相关推荐
excel1 分钟前
深入解析 Vue 3 SSR 编译管线:ssrCodegenTransform 源码全解
前端
excel2 分钟前
深入解析 Vue SSR 编译器的核心函数:compile
前端
IT_陈寒4 分钟前
Vue 3性能优化实战:7个关键技巧让我的应用加载速度提升50%
前端·人工智能·后端
excel6 分钟前
Vue SSR 错误系统源码解析:createSSRCompilerError 与 SSRErrorCodes 的设计原理
前端
excel7 分钟前
Vue SSR 源码解析:ssrTransformModel 深度剖析
前端
excel7 分钟前
Vue SSR 运行时辅助工具注册机制源码详解
前端
excel8 分钟前
Vue SSR 源码解析:ssrProcessIf 条件渲染的服务端转换逻辑
前端
excel10 分钟前
深度解析:Vue 3 中 ssrTransformTransitionGroup 的实现原理与机制
前端
晚秋大魔王10 分钟前
基于python的jlink单片机自动化批量烧录工具
前端·python·单片机
星尘库13 分钟前
抖音自动化-实现给特定用户发私信
前端·javascript·自动化