函数内更改后无法访问已更改的变量值

时间:2018-06-23 08:21:47

标签: javascript jquery variables scope global-variables

        var getFileName = null

        $('#fileInput').change(function() {
            var props = $('#fileInput').prop('files'),
                file = props[0]
            getFileName = "" + file.name
            console.log("inside function: " + getFileName)
        })


        // selected file
        console.log("outside function: " + getFileName);

变量在函数内部正确更改,但是我无法在函数外部获取更改的值。我认为我忽略了某些内容,但目前无法解决。

1 个答案:

答案 0 :(得分:1)

就像注释中提到的那样,这些行并不是按照它们被认为是导致回调的顺序执行的。

您可能应该这样做

    var getFileName = null; // global variable

    $('#fileInput').change(function() {
        var props = $('#fileInput').prop('files'),
            file = props[0],
            getFileName = "" + file.name
        ;
        console.log("inside function: " + getFileName); // log in callback
        checkOutside();
    })

    function checkOutside(){
        // output global variable after its changed in callback of "change"-event
        console.log("outside function: " + getFileName);
    }
相关问题