这个函数会返回什么?空数组或对象数组
What will this function return? An empty Array or Array of Objects
var rowData = [];
function someName() {
JsonClient.onload = function () {
rowData.push("sasas");
rowData.push("sasas1");
rowData.push("sasas2");
rowData.push("sasas3");
};
return rowData;
}
返回一个空的rowData。为什么?
伙计们,这是我在发布
函数someName
从未被调用(例如someName();
)。因为它永远不会被调用,所以push
语句永远不会被执行。
即使被调用,someName
函数也只是给JsonClient.onload
分配一个匿名回调函数。你的代码没有告诉我们JsonClient
是什么,但它似乎是一个安全的假设,它是一个HTTP响应的事件处理程序。在浏览器接收到HTTP Response之前,不会调用该函数,此时return
语句已经执行完毕。您不能从Ajax请求返回,您必须处理回调本身的数据
你有一个函数声明了一个匿名函数,该函数在JsonClient加载完成之前不会执行。
你需要这样做:
var rowData = [];
function someName(){
JsonClient.onload = function(){
rowData.push("sasas");
rowData.push("sasas1");
rowData.push("sasas2");
rowData.push("sasas3");
useRowData(rowData);
};
// here I would expect a call like JsonClient.send();
}
function useRowData(rowData) {
alert(rowData);
}
someName(); // execute the actual function
你忘记在你想推的每个字符串上加双引号了。一旦你这样做,它将返回一个字符串数组。
你没有关闭字符串…这应该可以工作var rowData = [];
function someName(){
JsonClient.onload = function(){
rowData.push("sasas");
rowData.push("sasas1");
rowData.push("sasas2");
rowData.push("sasas3");
};
return rowData;
}
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象