首页 > 解决方案 > 有没有办法在另一个函数中调用一个函数?

问题描述

我有以下代码:


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() 。有没有办法做到这一点或范围不允许?

标签: javascriptfilescopefilereader

解决方案


函数声明的范围仅限于定义它们的函数。

要在外部访问它们,您需要在某处明确分配它们。

例如:

let toto = null;

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

...但是,除了范围之外,您正尝试在根据经典异步问题创建函数之前调用该函数,因此您需要重新考虑您的方法。


推荐阅读