Nodejs报错Cannot read property 'call' of undefined

发布于 2022-09-05 03:07:46 字数 830 浏览 11 评论 0

在中间件中这么写:
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中就能用吗,为什么我在调用的时候报错了呢?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

等待我真够勒 2022-09-12 03:07:46

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

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

console.log(wechat.reply)
此生挚爱伱 2022-09-12 03:07:46

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

想你只要分分秒秒 2022-09-12 03:07:46

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

熟人话多 2022-09-12 03:07:46

不知道你解决没 我猜可能是wechat.reply用的是箭头函数的写法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文