在中间件中这么写:
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中就能用吗,为什么我在调用的时候报错了呢?
而且,百度了一下,有这种错误的人特别少……
问大神:通常是什么时候会报这个错?报错的原因是什么?
大家讲道理2017-06-29 10:11:20
举个栗子 a.call(this,null)
,但是此时 a
是 undefined
,就会报你遇到的错误
确认有 wechat.apply 这个方法么
女神的闺蜜爱上我2017-06-29 10:11:20
在中间件中这么写:
wechat.reply.call(this);在wechat中的reply函数是这么写的:
wechat实例应该没有值,你在调用之前打印一下看看。
console.log(wechat.reply)
怪我咯2017-06-29 10:11:20
如果x.call
中x
未定义,则其下的.call
无法访问,所以你先确定一下wechat.reply
是否已经定义。
另外,注意在JS中,变量名是区分大小写的。