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

  • Glove and Boots

    Glove and Bo

    1 ŞUBAT 2007
  • Howcast

    Howcast

    4 EKİM 2007
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013