首页 > 解决方案 > 如何将自定义值传递给现有函数(不更改函数)?

问题描述

我的角度应用程序有一个加载脚本的函数(在不同的文件上)。在一种情况下,我需要加载不同的脚本,但使用相同的功能。我被告知不要触摸或添加现有函数,而是“用我的值调用它”。不知道这到底是什么意思:-/

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

标签: javascriptangularfunctionparameters

解决方案


你可以完成你想要的。我认为你被这个抛弃了:

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

每当您看到类似myVar = 'some value'afunction作为参数时,这仅意味着它是默认值(如果没有传入任何内容)。

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

所以,正如你所看到的,你可以在不改变函数的情况下完成你想要的(假设你在这里给了我们完整的上下文


推荐阅读