JavaScript / NodeJS添加到函数的调用者对象

时间:2018-05-19 12:45:44

标签: javascript node.js constructor this

所以,我在Node.JS中创建了一个构造函数,我遇到了一些问题。

function server(server) {
    this.channels = new Array
    var channels = server.channels.array(); // Gets array of Channel  Objects

    channels.forEach(function(selectedchannel){
       if (selectedchannel.constructor.name == "TextChannel") {
            channels.push(selectedchannel.name)          // <- Here
      }
   });

我想将所有通道的名称添加到this.channels数组中, channels.push会添加到channels-variable,this.channels.push会选择我传递给forEach的匿名函数。 我该怎么做呢? (我是一个菜鸟,怜悯)

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

function Server(server) {
    let channels = server.channels.array();

    this.channels = channels.map(selectedchannel => {
       if (selectedchannel.constructor.name === 'TextChannel') {
            return selectedchannel.name;
      }
    }).filter(data => !!data);
}

构造函数应以大写字母开头。 不需要为数组,函数和其他类型调用构造函数,但是在没有括号的情况下调用它是错误的。 数组映射函数返回一个新数组,过滤器将删除空/假值。