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]
相关推荐
容沁风13 小时前
react路由Cannot GET错误
前端·react.js·前端框架·sharp7
少云清13 小时前
【UI自动化测试】6_web自动化测试 _浏览器操作
前端·web自动化测试
Never_Satisfied13 小时前
在c#中,抛出异常,并指定其message的值
java·javascript·c#
globaldomain13 小时前
立海世纪:.com和.net域名哪个更适合你的网站
大数据·前端·人工智能·新媒体运营·国外域名·域名注册
Highcharts.js13 小时前
什么是散点图?一文学会Highcharts散点图的核心特性与3D扩展应用
javascript·3d·开发文档·散点图·highcharts·图表类型
phltxy14 小时前
Vue Router:从入门到实战
前端·javascript·vue.js
Zhencode14 小时前
Vue3核心运行时之runtime-core
前端·javascript·vue.js
木斯佳14 小时前
前端八股文面经大全:腾讯WXG技术架构前端面试(2025-11-19)·面经深度解析
前端·面试·架构
感性的程序员小王14 小时前
HTTPS页面请求HTTP接口失败?一文讲透Mixed Content
前端·后端
用户6000718191015 小时前
【翻译】我竟渐渐迷上了生成器的设计巧思
前端