Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
赋值后Javascript对象仍为空_Javascript_Json_Object_Global_Variable Assignment - Fatal编程技术网

赋值后Javascript对象仍为空

赋值后Javascript对象仍为空,javascript,json,object,global,variable-assignment,Javascript,Json,Object,Global,Variable Assignment,我有一个函数setStatus,我这样称呼它: $.getJSON( '/api/v1/status', setStatus ); 函数如下所示: function setStatus(data) { status = data; console.log(data); console.log(status); timer = setInterval(updateStatus, 1000); } 当我运行此命令时,控制台会在包含我的数据的第一行打印一个漂亮的对

我有一个函数setStatus,我这样称呼它:

$.getJSON( '/api/v1/status', setStatus );
函数如下所示:

function setStatus(data) {
    status = data;
    console.log(data);
    console.log(status);
    timer  = setInterval(updateStatus, 1000);
}
当我运行此命令时,控制台会在包含我的数据的第一行打印一个漂亮的对象,但在第二行打印[object object]。稍后,myupdateStatus尝试使用数据计算正常运行时间值:

function updateStatus() {
    var table = $('#status');
    table.find('#uptime').text(calculateUptime(status.bootTime*1000));

该表显示了一组NaN,可能是因为变量“status”为空。我做错了什么?

您是否正确地在某个更高范围内声明了
状态变量

你应该有一个

var status = null;
在全局范围内的某个地方,或者在定义所述函数的闭包内。
这有帮助吗?

在setStatus中,您似乎将
数据
分配给局部变量
状态
。你在全球范围内定义了
状态吗?@Valdas Rapševičius:我在网上看到很多评论说,如果不定义该声明,你就会自动创建一个全球范围。但这并不重要,因为即使我将其放入代码中,仍然会失败。这一切都失败了:“var status;”、“var status=null;”、“var status=”、“window.status=data;”和“window.status=JSON.parse(JSON.stringify(data));”。我在jquery中使用了许多不同的复制技巧,但都不起作用。请参阅我对上面Valdas Rapševičius的回复。哦,我正在使用Firefox 33.1.1进行测试。很好,我刚刚发现了问题。Firefox不喜欢变量名“status”。如果我把它改成‘英格兰银行’,就不会有问题,而且它还能工作。我在这方面损失了几个小时的调试时间….:(