[[IT知识]] 深入解析Vue forEach循环中this指向的坑与解决方案

[复制链接]
查看: 51|回复: 0
发表于 2025-1-24 09:15:08 | 显示全部楼层 | 阅读模式
易博V9下载

深入解析Vue forEach循环中this指向的坑与解决方案

vue 使用forEach的过程中,关于 this 的指向问题。

  1. function PhpernoteChart(data) {
  2. this.data = data;
  3. this.width = 0;
  4. this.data.list.forEach(function (item) {
  5. if (this.width > parseInt(item.x)) {
  6. this.width = parseInt(item.x);
  7. }
  8. });
  9. }
  10. var a = new PhpernoteChart(data);
复制代码

每一个用function声明的函数在调用时都会在函数内创建自己的this。this一般是函数所操作的对象。如果没有操作的对象。this在"use strict";严格模式下是 undefined,非严格模式下是 window。
也就是说,function声明的函数总是有自己的this。从而遮盖外层作用域中的this。
如果用es6的箭头函数()=>{}就没有自己的this。在箭头函数()=>{}中访问this,是访问外层作用域中的this

  1. function PhpernoteChart(data) {
  2. this.data = data;
  3. this.width = 0;
  4. this.data.list.forEach(item => {
  5. if (this.width > parseInt(item.x)) {
  6. this.width = parseInt(item.x);
  7. }
  8. });
  9. }
复制代码
易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表