SORU
7 EKİM 2009, ÇARŞAMBA


Javascript kullanma isteğe bağlı parametreler

1, 2 veya 3 parametre alabilir statik bir javascript işlevi var:

function getData(id, parameters, callback) //parameters (associative array) and callback (function) are optional

Her zaman eğer verilen parametre tanımlanmamış ise test biliyorum, ama nasıl geçti hangi parametre ya da geri olup olmadığını biliyor ki?

Bunu yapmanın en iyi yolu nedir?

< / ^ hr .

Geçti ne olabilir örnekler:

1:

getData('offers');

2:

var array = new Array();
array['type']='lalal';
getData('offers',array);

3:

var foo = function (){...}
getData('offers',foo);

4:

getData('offers',array,foo);

CEVAP
7 EKİM 2009, ÇARŞAMBA


Kaç arguments işleve olduğunu ve eğer ikinci argüman bir işlevi olup olmadığını kontrol edebilirsiniz:

function getData (id, parameters, callback) {
  if (arguments.length == 2) { // if only two arguments were supplied
    if (Object.prototype.toString.call(parameters) == "[object Function]") {
      callback = parameters; 
    }
  }
  //...
}

Ayrıca iddiaların bu şekilde nesne kullanabilirsiniz:

function getData (/*id, parameters, callback*/) {
  var id = arguments[0], parameters, callback;

  if (arguments.length == 2) { // only two arguments supplied
    if (Object.prototype.toString.call(arguments[1]) == "[object Function]") {
      callback = arguments[1]; // if is a function, set as 'callback'
    } else {
      parameters = arguments[1]; // if not a function, set as 'parameters'
    }
  } else if (arguments.length == 3) { // three arguments supplied
      parameters = arguments[1];
      callback = arguments[2];
  }
  //...
}

Eğer ilgileniyorsanız, bu bir görünüm vermek John Resig, yaklaşık bir teknikle article JavaScript yöntemi aşırı taklit.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ŞUBAT 2008
  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • expertvillage

    expertvillag

    5 NİSAN 2006