繁体   English   中英

如何在 class 方法 Javascript 内的 forEach 循环内调用 function?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM