2013-12-08 64 views
1
  var ajaxquery= $.ajax({ 
       url: "backend.php", 
       type: "POST", 
       data: {data:data}, 
       dataType: "text" 
      }); 

例如我有多個數據需要發送到用戶的交互。對於上面的代碼,例如,它將數據插入到後端。但我也有更新和刪除等許多其他操作。我打算OOP上面的代碼重用它,但它不像函數。我期待這樣的事情:OOP ajax避免代碼複製

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

可能嗎?

+0

你可以把它放在一個函數作爲參數的所有數據變量。 – jdepypere

回答

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"); 
+0

這裏有2個參數,var insert = ajaxquery(url,callback); 但你在這裏傳遞一個而不是兩個:insert(「somedata」);爲什麼?? – user3057928

+0

,因爲ajaxQuery將返回一個函數,這個函數是被賦值給插入變量的函數,它只接受一個參數。我希望現在更清楚。 –

+0

我明白了。還有一個問題。爲什麼你沒有使用新的關鍵字?在這種情況下你沒有使用任何對象? – user3057928