数据类似于:[
{"id":28,"text":"公司信息",
"children":[
{"id":1,"text":"公司文化"},{"id":2,"text":"招聘计划"},
{"id":6,"text":"公司新闻","children":[{"id":47,"text":"行业新闻"}]},
{"id":11,"text":"内部新闻","children":[{"id":24,"text":"行政信息"},{"id":27,"text":"高层指示"}]},
{"id":22,"text":"联系我们"},
{"id":26,"text":"产品展示","children":[{"id":32,"text":"电力产品"},{"id":33,"text":"配件介绍","children":[{"id":55,"text":"公司文化"}]}
]}
]
}
]
for (let i=0,len=data.length;i<len;i++) {
if (this.organformId === data[i].organguid) {
data[i].organname = datas[0].organName
}
else {
if (data[i].children != null && data[i].children.length>0) {
console.log(this.organformId) //可以访问到
(function () {
var _obj = arguments[0];
console.log(this.organformId)//访问不到,如何修改代码才能在闭包内访问外部变量?
for (let j=0, _len=_obj.length;j<_len;j++) {
if (this.organformId === _obj[j].organguid) {
console.log(this.organformId)
_obj[j].organname = datas[0].organName
_obj[j].organtype = datas[0].organType
_obj[j].organDesc = datas[0].organDesc
} else {
if (_obj[j].children!=null&&_obj[j].children.length>0) {
arguments.callee(_obj[j].children);
}
}
}
})(data[i].children)
}
}
代码逻辑及数据均没有问题,只是闭包内部访问不到外部变量?怎么改代码?
最简单的就是外部存一个变量
var _this = this