为什么这个对象没有定义
Why is this object undefined?
当我执行这段代码时,Firebug显示了一个错误:
$.ajax({
type: "GET",
url: "../foos/.....",
dataType: "json",
success: function (foos, textStatus, XMLHttpRequest) {
for (var i = 0; i <= foos.length; i++) {
var foo = foos[i];
alert(foo.id);
};
}});
json返回一个带有id和name属性的var "foo "。甚至提醒foo。Id属性,firebug显示错误:
alert(foo.id) //foo is undefined
为什么foo在警告中正确显示时未定义?
编辑:我赋值了两次,抱歉。但即使我不这样做,我也会有相同的firebug错误
您想要哪个foo ?数组中的foo或者在循环中重新声明的foo:
for (var i = 0; i <= foos.length; i++) {
var foo = {
id: "",
name:""
};
var foo = foos[i];
alert(foo.id);
};
但关键的是,这不是问题所在。问题是你从0
循环到foos.length
:
for (var i = 0; i <= foos.length; i++)
表示在循环的最后一次迭代时,索引i
比数组的最大索引大1。当您尝试读取该元素时,它确实是未定义的。
你应该把你的循环改成:
for (var i = 0; i < foos.length; i++)
(当然要去掉重新定义的foo
)。
结果应该是:
for (var i = 0; i < foos.length; i++) {
var foo = foos[i];
alert(foo.id);
};
相关文章:
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在setInterval函数之前声明时未定义对象
- 使用数组自定义对象
- 使用带有自定义对象作为属性的jQuery.extend时出现意外行为
- 在JavaScript中定义自定义对象和函数(第2部分)
- 在JavaScript中定义自定义对象和函数
- 使用+=运算符未定义对象中的第一个元素
- 是否可以在定义对象时访问对象值
- 通过 Requirejs 传递的未定义对象
- 如何获得一个动态增长的自定义对象的Javascript数组
- Angular Schema Form-自定义对象编辑器
- 使用JavaScript将自定义对象添加到文档中
- 对象-在定义对象之前先调用对象
- 序列化具有方法的自定义对象.序列化后删除的方法-要采取的步骤
- 正在将img/文件上载到Quickbloxx自定义对象API
- 生成自定义对象调用
- 将自定义对象的猫鼬 PUT 实现到复杂架构中时出现问题
- 在定义对象后在对象上定义函数
- 如何在 Javascript 中制作自定义对象数组
- 使 HTML 元素从自定义对象继承事件