![](/img/trans.png)
[英]Javascript - Unable to call function inside a foreach loop
[英]How do I call a function inside a forEach loop inside a class method Javascript?
我在 class 方法中有一个 function 在被调用到 forEach 循环时未读。
class Mazefinder {
constructor() {
}
// class method
Graph() {
// This is an arrayList of Objects
this.vertices = this.mazeArray;
// function I want to use in my forEach loop
function setKey(key) {
let setKeyStack = [key];
return setKeyStack;
}
// forEach Loop
this.vertices.forEach((e) => {
if (e === s) {
const keyToAdd = this.nodeIDS + this.nodeIdCount.toString();
e.setKey()// function setKey cannot be read inside the forEach loop
}
})
}
}
我尝试将其附加到 this 关键字
this.setKey = setKey
但是您不能使用 this 关键字将变量附加到函数
例如:e.this.setKey(something)// 不可能
我不确定我是否理解你的问题,但我会尽力提供帮助:)
我相信您正在尝试从 forEach 循环调用 Graph class 内的 setKey 方法,对吗? 由于我没有完整的上下文,我尝试简化代码并检查它是否适合您:
class Graph {
constructor() {}
setKey(key) {
console.log(key);
}
}
function main() {
let vertices = [];
let graph = new Graph();
vertices.push(graph);
vertices.forEach((e) => {
e.setKey('new key');
});
}
main();
如果运行此代码,将记录“新密钥”,表明在 forEach 循环内成功调用了 setKey 方法。 那是你想要达到的目标吗?
如果您需要更具体的内容,请发布您的整个代码:希望有帮助:)
要以e
作为参数调用 function setKey
,您必须这样做:
const setKeyStack = setKey(e);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.