javascript - еще одна функция, несколько вопросов .js файла - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть 2 .js файлы.Включено, в порядке library.js с последующим other.js.При вызове функции логгера, как показано ниже из abc, я получаю Uncaught TypeError: logger is not a function.

logger можно найти и вызвать извне abc в скрипте other.js, поэтому я знаю, что он загружен.Как я могу позвонить logger изнутри abc (чтобы избежать дублирования кода)?Я думал, что logger.js будет в глобальном масштабе и доступен везде.

library.js

var logger = function(param){
  //...
  console.log(param);
 // ...
}

logger("library.js is included");

other.js

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();

1 Ответ

0 голосов
/ 15 февраля 2019

Доступно, отлично работает.Возможно, внутри метода doStuff вы переназначаете что-то еще на logger переменную.

const logger = string => console.log(string)

logger('works')

var abc = {
    showDebug : true,
    doStuff : function(){
      if(this.showDebug){
          logger("Debugging now");
      }
    }
}

abc.doStuff();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...