Как передать пользовательское значение в существующую функцию (без изменения функции)? - PullRequest
0 голосов
/ 02 октября 2019

В моем угловом приложении есть функция (из другого файла), которая загружает скрипт. Мне нужно загрузить другой скрипт в одном случае, но использовать ту же функцию. Мне сказали не трогать и не добавлять к существующей функции, а вместо этого «просто вызывать ее со своими значениями». Не уверен, что именно это означает: - /

loadScript (url = 'assets/scripts/external/foo.js') {
    let body: any = document.getElementsByTagName('body')[0];
    let script: any = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;
    body.appendChild(script);
  }

Что-то вроде этого в моем файле, но я думаю, но вычеркивает ...

 url = 'assets/scripts/external/bar.js'
 loadScript (this.url);

Ответы [ 2 ]

3 голосов
/ 02 октября 2019

Вы можете выполнить то, что вы хотите. Я думаю, что вас сбивает с толку это:

loadScript (url = 'assets/scripts/external/foo.js')

Всякий раз, когда вы видите что-то вроде myVar = 'some value' в function в качестве аргумента, это просто означает, что это значение по умолчанию(если ничего не передается).

  loadScript (url = 'assets/scripts/external/foo.js') {
    let body: any = document.getElementsByTagName('body')[0];
    let script: any = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;
    body.appendChild(script);
  }

Вы должны быть в состоянии позвонить loadScript(<whatever>), и все должно работать нормально

Упрощенный пример:

function test(myValue = 1) {
  return myValue;

}

console.log('Should be 1', test());
console.log('Should be 2', test(2));

Итак, как вы можете видеть, вы можете выполнить то, что вы хотите, не меняя функции вообще ( при условии, что вы даете нам полный контекст здесь )

0 голосов
/ 02 октября 2019

U может просто:

     loadScript (var, url = 'assets/scripts/external/foo.js') {
        let body: any = 
         document.getElementsByTagName('body')[0];
        let script: any = document.createElement('script');
       script.type = 'text/javascript';
       script.src = url;
       body.appendChild(script);
       Console.log(var)
       }

Вы просто передаете второй аргумент

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