SORU
24 Aralık 2009, PERŞEMBE


JavaScript bir işlev için bağımsız değişken bir dizi göndermek mümkün mü?

Bir dizi JavaScript bir işlev için bağımsız değişken bir dizi göndermek mümkün mü?

var arr = ['a','b','c']

var func = function()
{
    // debug 
    alert(arguments.length);
    //
    for(arg in arguments)
        alert(arg);
}

func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(arr); // prints 1, then 'Array'

Son zamanlarda Python bir çok yazı yazdım ve varargs kabul etmek ve onları göndermek için harika bir model. örneğin

def func(*args):
   print len(args)
   for i in args:
       print i

func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(*arr) // prints 4 which is what I want, then 'a','b','c','d'

Olası JavaScript tedavi görmesi için bir dizi göndermekgibibağımsız değişkenler dizisi mi?

CEVAP
24 Aralık 2009, PERŞEMBE


apply:

var arr = ['a','b','c'];

var func = function() {
  alert(arguments.length);

  for(var i = 0; i < arguments.length; i  ) {
    alert(arguments[i]);
  }

};

func.apply(null, arr);

null uygulamak ilk bağımsız değişken olarak kullanılan, Genel nesne this anahtar kelime kümesi dikkat edin (pencere) func içinde.

Ayrıca arguments nesne gerçekten bir Dizi olduğunu unutmayın, onu dönüştürmek için :

var argsArray = Array.prototype.slice.call(arguments);

Ve belki bir kaç işlevi bekliyor, biliyorsun bu senin için yararlıdır:

var test = function (one, two, three) {}; 
test.length == 3;

Ama yine de argümanların rastgele bir sayı iletin

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • placeboing

    placeboing

    7 Mart 2006