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

  • Apple

    Apple

    22 HAZİRAN 2005
  • ShoSho

    ShoSho

    20 Ocak 2010
  • sknbp

    sknbp

    16 Kasım 2006