所以我一直在努力,所以我来到这里寻求答案。我觉得这个问题有点像一个JavaScript新手,但现在就这样了。
我有以下代码:
function a() {
var ret = {};
//random stuff that get some other object
ret = someOtherObject;
alert(ret);
return ret;
}
var c = a();
alert(c);
问题是“c”为空,但“ret”是正确的对象。对象是否未在克隆时返回? “ret”会丢失并在功能之外消失吗?我不明白。
感谢您的帮助。 :)
答案 0 :(得分:2)
我想如果a()显示没有返回正确的答案,那么应该有另一个a()代替。
所以问题是代码中有两个a(),一个是正确的定义,第二个是你没有告诉我们的。
答案 1 :(得分:0)
我遇到了类似的问题。对我来说,问题是我有
var i;
if (condition) {
i = 1
}
return i
i
对我来说总是空的,即使条件为真。更改为顶部的var i = null;
可以解决我的问题
答案 2 :(得分:-1)
JavaScript是异步的,因此如果运行函数a()需要一些时间,如果在()返回某些内容之前调用alert,则变量c仍为null。这可以通过回调修复,即。在函数中包含alert-code并从()中调用它。
答案 3 :(得分:-1)
请注意,在JavaScript中,变量不需要定义var
关键字。
这意味着行
ret = someOtherObject;
someOtherObject
的变量null
。 someOtherObject
分配给ret
(从右到左评估)因此,ret
变为null
。