【问题标题】:Cannot read property 'push' of undefined? [duplicate]无法读取未定义的属性“推送”? [复制]
【发布时间】:2017-08-17 19:41:17
【问题描述】:

我有以下简单的代码:

  export class Years {

      private years: number[];
      private currentYear: number;

      constructor() {
        this.currentYear = new Date().getFullYear();
        this.years.push(this.currentYear + 1);
        for (let i = this.currentYear; i < this.currentYear - 5; i--) {
          this.years.push(i);
        }
      }
}

它给了我一个错误:Cannot read property 'push' of undefined??为什么如果我有正确的数据类型作为数组?

【问题讨论】:

    标签: angular


    【解决方案1】:

    你必须初始化年​​为空数组,否则为空

     private years: number[] = [];
    

    【讨论】:

    • 可能是评论。如果任何声誉较低的人给出了相同的答案,“高级”用户就会开始抱怨:) 在这里添加我的想法,因为我已经看到了这种情况:)
    • ...也可能被标记为骗子。一个简单的谷歌搜索就会给出答案。
    • @sajeetharan,人们在这里发帖是为了解决他们的问题,我不介意它是评论还是答案,我不反对,只要问题解决了 OP。它只是我所说的双重标准:)
    • @Faisal,我至少没有双重标准。不管是谁,我对所有人都一样刻薄,哈哈。在我看来,这些类型的问题根本不应该回答,例如在这方面有这么多的骗子,并且认为高级代表用户会知道这一点,所以从这个意义上说,我更宽容低 -实际上代表用户。
    • @AJT_82 你的“同样卑鄙”的评论让我很开心,干杯 ;)
    猜你喜欢
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2018-05-12
    • 2017-08-12
    相关资源
    最近更新 更多