0

有很多 JavaScript 函数可以直接接受一个对象,这里有一些例子。这不是特定于这些函数 jquery$.ajax()或 nodejs 模块中的任何一个request(),两者都只是示例。

$.ajax({
  method: "post",
  data: {'hello':'world'},
})

request({
  method : "post",
  body : "hello world",
});

我只是尝试了一些我认为可行的方法,这是一个更精细的版本。

request({
  method : function(){
    return "post";
  },
  data: {'hello':'world'},
});

令我惊讶的是,它没有用。这个也不行。

var m = function(){
  return "post";
};

request({
  method : m,
  data: {'hello':'world'},
});

我错过了什么吗?有什么方法可以将生成的函数放入这些对象中?我希望得到一些反馈。

4

3 回答 3

3

你不想在这里传递一个函数,你想传递它的返回值。

request({
  method: (function() {
    return "post";
  })(),
  data: {'hello':'world'}
});
于 2012-08-23T02:34:13.750 回答
3

您需要执行函数并使用返回值,而不是函数本身。

var m = function(){
  return "post";
};

var data = function() {
  return {'hello':'world'};
}

request({
  method : m(),
  data: data()
});
于 2012-08-23T02:34:42.557 回答
0

当文档加载时执行该函数,如下所示。这将使 m = 'post'

var m = (function(){
  return "post";
})();

request({
  method : m,
  data: {'hello':'world'},
});
于 2012-08-23T02:59:40.727 回答