搜尋

首頁  >  問答  >  主體

node.js - Nodejs報錯無法讀取未定義的屬性“呼叫”

在中間件中這麼寫:
wechat.reply.call(this);
在wechat中的reply函數是這麼寫的:

Wechat.prototype.reply = function(){
    console.log('bbbbb');
    var content = this.body;
    var message = this.weixin;
    var xml = util.tpl(content,message)

    console.log(xml);
    this.status = 200
    this.type = 'application/xml'
    this.body = xml
    return
}

然後就報錯

TypeError: Cannot read property 'call' of undefined
      at Object.<anonymous> (C:\www\koa\wechat\wechat\g.js:54:16)
      at Generator.next (<anonymous>)
      at onFulfilled (C:\www\koa\wechat\node_modules\co\index.js:65:19)
      at process._tickCallback (internal/process/next_tick.js:109:7)
      

話說,call函數不是在原生js中就能用嗎,為什麼我在呼叫的時候報錯了呢?

而且,百度了一下,有這種錯誤的人特別少…
問大神:通常是什麼時候會報這個錯?報錯的原因是什麼?

PHP中文网PHP中文网2787 天前1351

全部回覆(3)我來回復

  • 大家讲道理

    大家讲道理2017-06-29 10:11:20

    舉個栗子 a.call(this,null),但是此時 aundefined,就會報你遇到的錯誤
    確認有 wechat.apply 這個方法麼

    ,就會報你遇到的錯誤🎜確認有 wechat.apply 這個方法🎜

    回覆
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-29 10:11:20

    在中間件中這麼寫:
    wechat.reply.call(this);在wechat中的reply函數是這麼寫的:

    wechat實例應該沒有值,你在呼叫之前列印一下看看。

    console.log(wechat.reply)

    回覆
    0
  • 怪我咯

    怪我咯2017-06-29 10:11:20

    如果x.callx未定義,則其下的.call無法訪問,所以你先確定一下wechat.reply是否已經定義。
    另外,注意在JS中,變數名是區分大小寫的。

    回覆
    0
  • 取消回覆