node.js - Nodejs报错Cannot read property ’call’ of undefined

【字号: 日期:2022-09-06浏览:27作者:雯心

问题描述

在中间件中这么写: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:wwwkoawechatwechatg.js:54:16) at Generator.next (<anonymous>) at onFulfilled (C:wwwkoawechatnode_modulescoindex.js:65:19) at process._tickCallback (internal/process/next_tick.js:109:7)

话说,call函数不是在原生js中就能用吗,为什么我在调用的时候报错了呢?

而且,百度了一下,有这种错误的人特别少……问大神:通常是什么时候会报这个错?报错的原因是什么?

问题解答

回答1:

举个栗子 a.call(this,null),但是此时 a 是 undefined,就会报你遇到的错误确认有 wechat.apply 这个方法么

回答2:

在中间件中这么写:wechat.reply.call(this);在wechat中的reply函数是这么写的:

wechat实例应该没有值,你在调用之前打印一下看看。

console.log(wechat.reply)回答3:

如果x.call中x未定义,则其下的.call无法访问,所以你先确定一下wechat.reply是否已经定义。另外,注意在JS中,变量名是区分大小写的。

相关文章: