2011-12-22 23 views
5

nasıl buAS3 değişken uzunluk argümanı

function foo(x:*, ...args):* { 
} 

function bar(x:*, ...args):* { 
    foo(x, args); // how to expand args ? the args is an array now 
} 

nasıl args genişletmek için yapmanız var uzunluğu args ile başka işlevi çağırmak için genişletmek? Ben bar(1,2,3) çağırdığınızda, onu foo(1,2,3) diyoruz isterdim, ama sanırım foo(1,[2,3])

cevap

4
function bar(x:*, ...args):* { 
    args.unshift(x); //add x to the front of the args array 
    foo.apply(<scope>, args); 
} 

Eğer foo ve bar aksi takdirde foo ilan sınıfın örneği olmalı ve foo küresel işlev ise olması gerektiği, this olmalıdır aynı sınıfta <scope> bildirilmiştir null

foo.apply(this, args); 
//-- or -- 
foo.apply(myFooInstance, args); 
//-- or -- 
foo.apply(null, args);