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]
相关推荐
Cache技术分享7 分钟前
241. Java 集合 - 使用 Collections 工厂类处理集合
前端·后端
Lear8 分钟前
解决Flex布局中overflow:hidden失效
前端
Heo9 分钟前
原型理解从入门到精通
前端·javascript·后端
Heo13 分钟前
通用会话控制方案
前端·javascript·后端
Heo17 分钟前
跨域问题解决方案汇总
前端·javascript·后端
Yuroo zhou20 分钟前
石油钻井、HDD、采矿:不同工况下,如何抉择您的陀螺定向短节?
前端·科技·硬件架构·钻井·采矿
shmily麻瓜小菜鸡24 分钟前
Element Plus 的 <el-table> 怎么点击请求后端接口 tableData 进行排序而不是网络断开之后还可以自己排序
前端·javascript·vue.js
二川bro36 分钟前
第38节:WebGL 2.0与Three.js新特性
开发语言·javascript·webgl
xiaoxue..37 分钟前
深入理解 JavaScript 异步编程:从单线程到 Promise 的完整指南
前端·javascript·面试·node.js
MediaTea1 小时前
Python 第三方库:Markdown(将文本渲染为 HTML)
开发语言·前端·python·html