我有以下代码:
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() 。有没有办法做到这一点,或者范围不允许?
答案 0 :(得分:1)
函数声明的作用域是定义它们的函数。
要在外部访问它们,您需要将它们显式分配到某处。
例如:
let toto = null;
function assign() {
toto = function toto () { ... };
}
……但是,抛开范围不谈,您正在尝试调用函数之前它已按照经典 asynchronous problem 创建,因此您需要重新考虑您的方法。