【问题标题】:OOP ajax to avoid code duplicationOOP ajax 避免代码重复
【发布时间】:2013-12-25 12:04:51
【问题描述】:
            var ajaxquery= $.ajax({
                url: "backend.php",
                type: "POST",
                data: {data:data},
                dataType: "text"
            });

例如,我需要在用户交互时发送多个数据。对于上面的代码,例如,它用于将数据插入到后端。但我还有其他操作,如更新和删除,以及许多其他领域。我计划 OOP 上面的代码来重用它,但它不像函数。我期待这样的事情:

var insert = new ajaxquery(url,data,callback);
var delete = new ajaxquery(url,data,callback);

可能吗?

【问题讨论】:

  • 你可以把它放在一个函数中,将所有数据变量作为参数。

标签: javascript php oop jquery


【解决方案1】:

您可以使用闭包来实现:

function ajaxQuery(url,callback) {
  return function(data) {
     return $.ajax({
                url: url,
                type: "POST",
                data: {data:data},
                dataType: "text",
                success: callback
            });
    }
  }
}
var insert = ajaxquery(url,callback);
insert("somedata");
insert("another data");
var deleteFn = ajaxquery(url2,callback2);
deleteFn("field");
deleteFn("another Field");

【讨论】:

  • 这里有2个参数,var insert = ajaxquery(url,callback);但是你在这里传递一个而不是两个: insert("somedata");为什么??
  • 因为 ajaxQuery 将返回一个函数,这个函数是分配给插入变量的函数,它只接受一个参数。我希望现在更清楚了。
  • 我明白了。还有一个问题。为什么不使用 new 关键字?在这种情况下你没有使用任何对象?
猜你喜欢
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多