有没有办法在另一个函数中调用一个函数?

时间:2021-05-27 13:55:07

标签: javascript file scope filereader

我有以下代码:


var f1 = document.getElementById("f"), 
f1 = function () {
var rd1 = new FileReader();
rd1.onload = function () {
              
             function assign () { 
                toto = function toto() {
                     // Code there
             }


        rd1.readAsBinaryString(f1.files[0]);
    }; 
f1.addEventListener('change', rd1);

我想要的是能够在上面的块之外调用函数 toto() 。有没有办法做到这一点,或者范围不允许?

1 个答案:

答案 0 :(得分:1)

函数声明的作用域是定义它们的函数。

要在外部访问它们,您需要将它们显式分配到某处。

例如:

let toto = null;

function assign() {
     toto = function toto () { ... };
}

……但是,抛开范围不谈,您正在尝试调用函数之前它已按照经典 asynchronous problem 创建,因此您需要重新考虑您的方法。