错误:调用构造函数时缺less新的前缀
我正在尝试在node.js
创build一个函数。 以下是相关的代码,当我调用函数时,它给了我错误。
function ReplacePlaceholders() { return 'success'; } exports.sendMailMsg = function (templateName, receiverEmail, dataPlaceholders) { ReplacePlaceholders(); }
在node.js中,函数名称是驼峰式的,应该以小写字母开头。 用大写字符开始函数告诉JSHint将函数看作构造函数而不是方法。
这实际上是由JSHint生成的错误,但代码将正确运行。 导致此错误的newcap
, newcap
的选项实际上是折旧的,build议禁用它。
关于为什么这个选项甚至在JSHint中的相关信息:
这个选项需要大写构造函数的名字。 使用
new
操作符的函数大写只是一个约定,可以帮助程序员直观地将构造函数与其他types的函数区分开来,以便在使用这个函数时发现错误。不这样做不会破坏你的代码在任何浏览器或环境中,但是通过阅读代码将会有点困难 – 如果该函数应该被使用或不使用
new
。 这一点很重要,因为如果没有使用新的函数,它将指向全局对象而不是新对象。
您提到的错误消息是一个JSHint错误消息,而不是运行时错误。 这里有一个讨论:
jshint期望新的“前缀”的function
JSHint期望以大写字母开始的函数是对象定义。 您可以忽略该错误,在JSHint中将其禁用,或者重命名您的函数,使其以小写字母开头。
我不知道为什么可能是这样,但是这个错误表明做new ReplacePlaceholders();
可能会工作。 但是,您可能需要考虑如下内容:
function ReplacePlaceholders(templateName, receiverEmail, dataPlaceholders) { return 'success'; } exports.sendMailMsg = ReplacePlaceholders;