在jQuery中将对象的引用传递给回调函数

时间:2012-09-20 11:20:42

标签: javascript jquery callback

  

可能重复:
  $.ajax context option

我有一些看起来像这样的代码:

$.post(self.baseUrl + 'api/method',
        {param1: data},
        function (response) {
            // Do something
        });

我想将自我对象的引用传递给回调,我想这会是这样的:

$.post(self.baseUrl + 'api/method',
        {param1: data},
        function (response, self) {
            // Do something
        });

但是,它不能像这样工作,jQuery文档没有显示一种方法可以使这成为可能,粗略的谷歌搜索没有发现任何东西。这可能,我该怎么办?

2 个答案:

答案 0 :(得分:5)

如果您使用$.ajax方法,则可以指定上下文:

$.ajax({
    type: "post",
    context: self,
    data: {param1: data},
    success: function (response) {
        console.log(this); // now 'this' refers to self

    }
});

答案 1 :(得分:0)

你为什么要那样做?

您可以轻松使用闭包:

var param1 = data;
$.post(self.baseUrl + 'api/method', function (data) {
    // access param1 here
});