在文件中调用函数,而被调用的函数调用第一个文件中的另一个函数

Calling function in a file while the called function call another function in the first file

本文关键字:函数 调用 文件 函数调用 另一个 第一个      更新时间:2023-09-26

我在另一个文件中调用函数时遇到麻烦,而在第二个文件中,被调用的函数必须在第一个文件中调用另一个函数。怎么可能?在我的示例中,我首先调用 File2 中的 Printer1 函数.js然后在 File2 中.js我调用在 File1 中声明的 Printer2.js(但我没有在 File2 中包含 File1.js.js,但我在 File1 中执行此操作.js(包括 File2.js)

文件1.js

var data1="Hi";
Printer1(data1);
var Printer2(){
document.write(data1);
}

文件2.js:

var Printer(data1){
    document.write(data1);
    Printer2();
}

我还想知道我是否可以在页面开头包含 File2.js,或者在调用 Printer1 之前必须包含一行?

你的javascript将按照加载的顺序执行,而不是提升,如果你使用正确的语法,可以在编写函数之前使用它们。

File 1:
  function foo() {
    alert("I'm foo!");
  }
File 2:
  foo(); //alerts "I'm Foo!"

基本上,有两个文件,例如

与将它们组合在一起并将它们包含在一起相同。如果它像这样工作,除了吊装之外,它也会单独工作。

这就是吊装的工作原理:(这必须在同一文件和同一范围内)

foo(); //alerts "I'm foo!" even though we haven't told it to yet.
function foo() {
  alert("I'm foo!");
}

这是有效的,因为以这种方式定义的函数将被"提升"到该范围内执行的开头。

什么不起作用

foo(); //undefined!!
var foo = function() { //doesn't get hoisted!
  alert("I'm foo!");
}

如果要吊装,请使用其他语法!

你可能想知道的一件事是这个,但我真的无法弄清楚你的问题(令人困惑的措辞,哈哈)

如果文件 1 具有使用文件 2 中的函数的函数怎么办?
在这种情况下,您将无法使用文件 1 中的函数,因为在执行文件 1 时文件 2 中的函数将未定义,但您可以使用文件 2 中的文件 1 函数(即使在开始时,如果您将其挂起)。

喜欢这个:

File 1:
  function foo() {
    bar();
  }
  foo(); //bar is undefined! error!
File 2:
  foo(); //works!! bar is hoisted and therefore defined already for "foo" to use
  function bar() {
    alert('from file 2!');
  }
首先,

你有var,你应该有函数。你也不应该使用document.write。看看这个。JS应如下所示:

文件1.js:

var data1="Hi";
Printer1(data1);
function Printer2(){
  document.write(data1);
}

文件2.js

function Printer1(data1){
    document.write(data1);
    Printer2();
}

为了使 file2 中的函数可调用,您需要标记如下所示:

<body>
  <script type="text/javascript" src="file2.js"></script>
  <script type="text/javascript" src="file1.js"></script>
</body>