Node.js typerror无法设置未定义的属性

时间:2018-08-08 00:05:42

标签: node.js typeerror

运行代码时出现此错误。

TypeError: Cannot set property 'variableName' of undefined

我的代码块是。

static setOnline(stream) {
    this.Streams[stream.name] = stream;

    this.updateStreams();
}

该行错误是此行

this.Streams[stream.name] = stream;

谷歌搜索后,我认为它不能正确设置我的数组。任何帮助都会很棒!

编辑:

class Streams {

static setOnline(exampleStreamName) {
    this.streams[exampleStreamName.name] = stream;

    this.updateStreams();
  }
}

exampleStreamName是.json文件内部的外部字符串。

1 个答案:

答案 0 :(得分:0)

静态函数没有“ this”成员。这就是使它们静止的原因。该模式是一个“单例”,因为您仅使用一个实例或类。

class Streams {

  static setOnline(exampleStream) {
    Streams.streams[exampleStream.name] = exampleStream;
    Streams.updateStreams();
  }

  static updateStreams() {
    console.log(Streams.streams);
  }
}

Streams.streams = {}

Streams.setOnline({
  name: 'foo'
})
Streams.setOnline({
  name: 'bar'
})

更多沉思...

将streams对象放入Streams类中并创建您在各处使用的对象更为灵活。

拥有一个不是Streams实例的静态stream成员也令人困惑。