Javascript/Coffeescript 追加类型错误 : is not a function

标签 javascript coffeescript

为什么不工作?

如果我将变量 msg 更改为字符串值,它就会起作用。

代码:

console.log full_messages # Array [ "text to be displayed" ]
for msg in full_messages
  $('#error_explanation ul').append('<li>'+ msg +'</li>')

错误消息:

TypeError: msg is not a function

最佳答案

你的问题出在你的空白处(或缺少空白处):

'<li>'+ msg +'</li>'

CoffeeScript 认为第二个 +这是一个一元运算符,所以整个事情被解释为:

'<li>' + msg(+'</li>')

如果您在二元运算符两侧添加空格:

'<li>' + msg + '</li>'
#     ^^^   ^^^

然后 CoffeeScript 就会执行您期望的操作。 经验法则:始终在二元运算符两侧添加空格。

您还可以使用字符串插值:

"<li>#{msg}</li>"

这与 '<li>' + msg + '</li>' 完全相同的 JavaScript但(可以说)更具可读性和惯用性。

关于Javascript/Coffeescript 追加类型错误 : is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44345304/

相关文章:

javascript - 下拉所选项目并单击按钮

javascript - 如何在 javascript (meteor.js) 中操作返回的 mongo 集合/游标?

javascript - CoffeeScript 中的函数声明

node.js - 在周一至周五上午 9 点到下午 5 点之间运行 Node 调度程序

javascript - WebStorm 检查三元 JavaScript 运算符中的逗号表达式

javascript - 在不同网站上完成操作后,使用 YouTube API 点赞视频

javascript - 在悬停时选择 sibling

php - config.xml 覆盖导致购物车不可见?

oop - nextTick 在类中的用法

javascript - 在 Webstorm/Intellij 中调试 Coffeescript jasmine-node 测试