vue中forEach循环的使用讲解
更新时间:2022年06月13日 14:47:08 作者:huayang183
这篇文章主要介绍了vue中forEach循环的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
forEach循环的使用
//data为集合 data.forEach(function(item, index) { //item 就是当日按循环到的对象 //index是循环的索引,从0开始 })
使用forEach报错,this指向问题
getCrumbs(){ let crumbs = JSON.parse(localStorage.getItem( "crumbs" )); //[Vue warn]: Error in created hook: "TypeError: Cannot set property 'manageClass' of undefined" 报错 crumbs.forEach(function(item){ console.log(item); if (item.name === "staffInfo") { this.manageClass = item.manageClass this.infoClass = item.infoClass; } }) },
crumbs.forEach(item => { console.log(item); if (item.name === "staffInfo") { this.manageClass = item.manageClass this.infoClass = item.infoClass; } })
每一个用function声明的函数在调用时都会在函数内创建自己的this。this一般是函数所操作的对象。如果没有操作的对象。this在"use strict";严格模式下是 undefined,非严格模式下是 window。
也就是说,function声明的函数总是有自己的this。从而遮盖外层作用域中的this。
如果用es6的箭头函数()=>{}就没有自己的this。在箭头函数()=>{}中访问this,是访问外层作用域中的this
getCrumbs(){ let crumbs = JSON.parse(localStorage.getItem( "crumbs" )); //[Vue warn]: Error in created hook: "TypeError: Cannot set property 'manageClass' of undefined" 报错 // crumbs.forEach(function(item){ crumbs.forEach(item => { console.log(item); if (item.name === "staffInfo") { this.manageClass = item.manageClass this.infoClass = item.infoClass; } }) // 或者使用for循环 for (let i = 0; i < crumbs.length; i++) { if (crumbs[i].name === "staffInfo") { this.manageClass = crumbs[i].manageClass this.infoClass = crumbs[i].infoClass; } } },
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
这篇文章主要介绍了Vue2.0+Vux搭建一个完整的移动webApp项目的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-03-03vuex中数据持久化插件vuex-persistedstate使用详解
这篇文章主要介绍了vuex中数据持久化插件vuex-persistedstate使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
这篇文章主要介绍了最全vue的vue-amap使用高德地图插件画多边形范围,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07
最新评论