1

参数是:

数据:对象数组。

anonFunction:一个函数,其参数与数据对象的参数相同。

目标:

它将遍历数据,并每次使用新参数触发匿名函数。

想法/尝试:

 function special(data, executeFunction){
    var callback = function(){
       if(executeFunction){
          executeFunction();
       }
    }
    var d = JSON.parse(data);
    for( var i = 0; i < d.length; i++){
       var object = d[i];
       callback(object);
    }
 }

这看起来对吗?我能看到的唯一问题是对象被序列化了。所以我只需要按顺序传递项目的值。可以通过某种方式完成的图。我不知道。:(

如您所见,我有一些差距。

编辑:一些示例数据:

data = [{"url": "google.com", "type":"POST"}, {"url":"yahoo.com","type":"GET"}]

它将被分解为对 url 和类型的迭代。我会将其传递给:

anonFunction(a,b){
     $.ajax({url:a, type:b});
}

因此,在使用列表和 anonfunction 执行我的函数后,它会使用我的示例向 google 和 yahoo 发出请求。

编辑2:

函数会是什么样子:

 //given data from above.
 special(data, function(a,b){
     $.ajax({url:a, type:b});
 });
4

1 回答 1

2

callback定义的函数不接受任何参数。稍后,您将对象传递给它,但它不会对它做任何事情。

不过,我认为您将其复杂化了。你只需要这样的东西:

function special(data, callback){
  if(!callback) return;
  var d = JSON.parse(data);
  for( var i = 0; i < d.length; i++){
    callback(d[i]);
  }
}

special(data, $.ajax);

作为奖励,在 Coffeescript 中,这就像:

$.ajax(settings) for settings in JSON.parse(data)

:)

于 2012-09-26T17:27:17.410 回答