为什么全局变量不保值

Why does not global variable hold value

本文关键字:全局变量 为什么      更新时间:2023-09-26

我不明白,为什么变量preset在函数setValue()执行结束时不持有任何值。

 function setValue(_provider, _index) {
        var preset = {};
        _provider.getItems(function (error, items) {
            ErrorUtility.logError(error);
            preset = items[_index].value;
            //preset contains correct object
            _provider.value(preset);
        });
        return preset; // preset contains empty object.
    }

_provider.getItems中,preset设置并包含正确的对象,但在_provider.getItems()范围之外,preset保留空对象,因为它被初始化,并且setValue()返回它。

因为"return preset;"比"preset = items[_index].value;"执行得早。看看这个