簡體   English   中英

javascript函數在函數調用中帶有參數?

[英]javascript function with parameters in function-call possible?

后續通話是否有意義/甚至有可能嗎?

    getCall('GET', URL, null, function(x, status, jqXHR){ }, failedRes);



     function getCall(method, url, data, func, func2){
        .ajax({
            type: method,
            contentType: "application/json",
            data: data,
            url: url,
            dataType: "json"
          }).done(function(data, textStatus,jqXHR) {
                console.log("done");
            }).fail(function(jqXHR, textStatus, err){
                console.log("fail");
            });
   } 

    function func2(jqXHR, textStatus, errorThrown){
        window.alert("AJAX call error occured");
        console.error( errorThrown );
    }

我最想知道的是因為“ {}”,還因為參數。 函數參數“ function(data(text,textStatus,jqXHR){}”)過多嗎? 而是{}不正確?

function(x, status, jqXHR){ }定義了可以調用的函數,但是當調用該函數時,除了返回undefined之外,它什么也不做。 在某些情況下,這可能是有意的。

在這種情況下,我想知道為什么這個參數根本不存在,因為getCall甚至不使用參數func

您可以傳遞任何內容。就我個人而言,我希望以一種更加結構化的方式設置數據傳遞,以防萬一將來需要進行更新。 傳遞函數引用或函數本身是完全可行的。

翼:

var data = {
   call: "GET",
   url: URL,
   data: null,
   func: function(x, status,jqXHR){},
   func2: failedRes
}

getCall(data);


function getCall(data){
   data = data || {};

   // then just access your vars like so: data.url

是的,這可行。

function callFunction(func, param) {
    return func(param);
}
callFunction(
    function(a) {
        return a*2;
    },
    2
);

返回4

這是JavaScript AJAX請求/響應格式:

function xhr(method, url, send, success){
  var x = new XMLHttpRequest || new ActiveXObject('Microsoft.XMLHTTP');
  var v = send ? encodeURI(send) : null;
  method = method.toUpperCase();
  x.open(method, url);
  if(method.match(/^POST$/)){
    x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    x.setRequestHeader('Content-length', v.length); x.setRequestHeader('Connection', 'close');
  }
  x.onreadystatechange = function(){
    if(x.readyState === 4 && x.status === 200){
      success(x.responseText);
    }
  }
  x.send(v);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM