问题共享变量

Issues sharing variables

本文关键字:共享变量 问题      更新时间:2023-09-26

首先,我让这些函数在点击时运行:

$('#bodyHVAC a#zMaps').one('click', function(){
    appendZoneMapStuff(globalPaths.mallName, function(){
        //console.log('appendZoneMapStuff');
        setTimeout(function(){
            getPathToUnits(function(){
                setTimeout(function(){
                    setupRoof('roofMrtu', function(){
                        //console.log('setupRoof');
                    });
                }, 500);
            });
        }, 0);
    });
});

我这样设置,以便函数一个接一个地运行,但它们似乎并不总是这样做。

我有这个全局变量:

var AMnamePathObj = {};
为简单起见,我们设getPathToUnits()的代码为:
function getPathToUnits(callback){
    AMnamePathObj = {lookin: "good"};
    console.log(AMnamePathObj);
    if (callback)
        callback();
}

setupRoof()的代码是:

function setupRoof(){
    console.log(AMnamePathObj);
    if (callback)
        callback();
}

但我得到[对象对象]时,console.log在setupRoof()运行,即使AMnamePathObj是一个全局变量!我甚至不想使用AMnamePathObj作为全局变量但我不知道如何将AMnamePathObj的信息传递给其他函数

[object object]是JavaScript中对象的默认字符串表示形式。如果你期待AMnamePathObj的一个有用的描述,你应该给它一个toString函数,例如:

var foo = {
  name: "Steve",
  toString: function() {
     return this.name;
  }
};
console.debug(""+foo);

比较
console.debug(""+{});

因此,能够看到所讨论的变量并没有错。