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]
相关推荐
SuperEugene几秒前
Vite 实战教程:alias/env/proxy 配置 + 打包优化避坑|Vue 工程化篇
前端·javascript·vue.js·状态模式·vite
文心快码 Baidu Comate1 分钟前
Comate 4.0的自我进化:后端“0帧起手”写前端、自己修自己!
前端·人工智能·后端·ai编程·文心快码·ai编程助手
We་ct11 分钟前
LeetCode 17. 电话号码的字母组合:回溯算法入门实战
前端·算法·leetcode·typescript·深度优先·深度优先遍历
lihaiting112 分钟前
css面试题
前端·css·css3
望京十三兄13 分钟前
前端排查项目上线后页面白屏
前端
程序员Sunday14 分钟前
vite 8 发布,双引擎时代结束,webpack 的时代真的快过去了
前端
xixixin_14 分钟前
【CSS】Ant Design 按钮点击时文字位移问题
前端·javascript·html
青柠代码录14 分钟前
【Vue3】SCSS 进阶篇
前端·scss
用户125893431396015 分钟前
边框渐变色的代码实现
前端
Csvn16 分钟前
使用 React Hooks 优化组件性能的 5 个技巧
前端·javascript·react.js