在同一文件中访问函数表达式时,错误为..“不是函数”。 我需要下面的函数表达式,以便在js文件之外的其他.js文件以及同一js文件中都可用。
我尝试了以下博客中的以下内容,似乎没有任何作用 https://github.com/nodejs/node/issues/2923
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Not_a_function
// this is in abc.js
function qpValidations() {
this.addDaystoGetDate = function(noOfDays){
...
}
this.constructDate = function(){
this.addDaystoGetDate(2);// here issue is coming, where trying to
//call function in same .js file
}
}
module.exports = new qpValidations();
我们非常感谢您的帮助!,尽管这个问题在我身上发生了很多次,并试图避免文件循环依赖以及成簇函数的表达和声明,早些时候已经解决了这个问题,但是现在又弹出了不确定的内容此问题的根本原因..?
答案 0 :(得分:1)
如果在同一个文件中调用函数时仅遇到问题,则很难提供帮助,因为您没有显示如何尝试调用它。但我建议您尝试这样的事情:
// this is in abc.js
function qpValidations() {
this.addDaystoGetDate = function(noOfDays){
...
}
this.constructDate = function(){
this.addDaystoGetDate (2);// here issue is coming
}
}
const newQp = new qpValidations()
module.exports = newQp;
newQp.addDaystoGetDate();
答案 1 :(得分:0)
addDaystoGetDate函数需要一个参数。调用函数时尝试发送参数。
newQp.addDaystoGetDate(5);
newQp.addDaystoGetDate("some text"); //or whatever you need
答案 2 :(得分:0)
最终得到了答案,它来自我的一个好友:),范围是此。addDaystoGetDate() 当在另一个this.constructDate()函数中调用该函数时,它会更改。因此,当解决方案将“ this”对象分配给如下所示的某个变量时,无论遇到什么地方,都可以进一步引用
function validation(){
var refObj = this;
refObj.addDaystoGetDate =function(dayscount){
}
refObj.constructDate = function(){
refObj.addDaystoGetDate(2);
}
}
module.exports = new validtaion();