Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:调用构造函数时缺少新前缀_Javascript_Node.js_Angularjs - Fatal编程技术网

Javascript 错误:调用构造函数时缺少新前缀

Javascript 错误:调用构造函数时缺少新前缀,javascript,node.js,angularjs,Javascript,Node.js,Angularjs,我正在尝试在node.js中创建一个函数。下面是相关的代码,当我调用函数时,它给出了错误 function ReplacePlaceholders() { return 'success'; } exports.sendMailMsg = function (templateName, receiverEmail, dataPlaceholders) { ReplacePlaceholders(); } 我不知

我正在尝试在
node.js
中创建一个函数。下面是相关的代码,当我调用函数时,它给出了错误

function ReplacePlaceholders() {
            return 'success';
          }      



  exports.sendMailMsg = function (templateName, receiverEmail, dataPlaceholders) {

        ReplacePlaceholders();
}

我不知道为什么会这样,但这个错误表明执行
newreplacepholders()可能有效。但是,你可能想考虑如下的事情:

function ReplacePlaceholders(templateName, receiverEmail, dataPlaceholders) {
  return 'success';
}

exports.sendMailMsg = ReplacePlaceholders;

在node.js中,函数名以驼峰大小写,并且应该以小写字符开头。用大写字符启动函数告诉JSHIT考虑函数是构造函数而不是方法。< /P> 这实际上是JSHint生成的错误,但代码将正确运行
newcap
,导致此错误的代码实际上已折旧,建议将其禁用

有关此选项为何出现在JSHint中的相关信息:

此选项要求您将构造函数的名称大写。将打算与
new
运算符一起使用的函数大写只是一种惯例,它可以帮助程序员直观地将构造函数函数与其他类型的函数区分开来,以帮助在使用时发现错误

不这样做不会破坏任何浏览器或环境中的代码,但通过阅读代码来判断函数是否应该与
new
一起使用会有点困难。这一点很重要,因为当打算与new一起使用的函数在不使用它的情况下使用时,
将指向全局对象,而不是新对象


您提到的错误消息是JSHint错误消息,而不是运行时错误。这里有一个关于它的讨论:


JSHint希望以大写字母开头的函数是对象定义。您可以忽略错误,在JSHint中禁用它,或者重命名函数,使其以小写字母开头。

除非
replacepholders()
exports.sendMailMsg
不在同一范围内,或者除非
exports
不是对象,否则此处显示的代码没有任何错误。你有什么具体的错误?谢谢你…我浪费了半天的时间来做这件简单的事情。。。!这根本不是事实。Javascript是区分大小写的,但如果函数以大写字母开头或不以大写字母开头,Javascript对函数的处理不会有任何不同——没有因为某些东西以大写字母开头而指定的特殊行为。有一些样式约定以某种方式使用大写,但这些纯粹是关于如何使用language.node.js及其相关联的linting的样式意见,将抛出错误,并且无法正确处理代码。的确,这主要是一种风格观点,node.js希望您遵循他们的风格。我也许应该更清楚地说明这是node.js,而不是一般的JavaScriptNo,这段代码在node.js中运行良好。Node.js不会强制您遵循该约定。错误/警告消息可能来自JSHint,它可以在文本编辑器中配置。