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
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ş:
İşlev bağımsız değişken listesi için J...
JavaScript işlevi için bağımsız değişk...
Bir yineleyici değişken olmadan dizi d...
Java'da değişken bağımsız değişken bir...
Nasıl Clojure içinde işlev bağımsız de...