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

  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • ravinderosahn

    ravinderosah

    20 Temmuz 2009
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012