我有2个.js
文件。依次包含library.js
和other.js
。从abc
内部调用记录器功能,如下所示,我得到Uncaught TypeError: logger is not a function
。
logger
脚本中从abc外部找到并调用 other.js
,所以我知道它已加载。如何从logger
内部调用abc
(以避免代码重复)?我以为logger.js
将在全球范围内,并且可以从任何地方访问。
var logger = function(param){
//...
console.log(param);
// ...
}
logger("library.js is included");
var x = 0;
logger("I am other"); // this happens!
var abc = {
showDebug : true,
doStuff : function(){
//...
if(this.showDebug){
logger("Debugging now"); // this errors
}
// ...
}
}
abc.doStuff();
答案 0 :(得分:1)
它可以访问,工作正常。也许在doStuff
方法内部,您正在将其他内容重新分配给logger
变量。
const logger = string => console.log(string)
logger('works')
var abc = {
showDebug : true,
doStuff : function(){
if(this.showDebug){
logger("Debugging now");
}
}
}
abc.doStuff();