首先,我已经点击了这些功能:
$('#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();
}
但是当setupRoof()中的console.log运行时,我正在获取[object object],即使AMnamePathObj是一个全局变量!我甚至不想将AMnamePathObj用作全局变量,但我不知道如何将AMnamePathObj的信息传递给另一个函数。
答案 0 :(得分:1)
[object Object]是JavaScript中对象的默认字符串表示形式。如果您期望AMnamePathObj的有用描述,您应该给它一个toString函数,例如:
var foo = {
name: "Steve",
toString: function() {
return this.name;
}
};
console.debug(""+foo);
与:比较:
console.debug(""+{});
因此能够看到有问题的变量并没有错。