2016-03-28 11 views
1

Bir işlevden dizgi temsil edilen parametreler dizisi yakalamaya çalışıyorum ve nasıl devam edeceğime emin değilim. Temelde "getParams" bak fonksiyonu Bu biraz dağınıkJavaScript'te dize ile temsil edilen parametreler dizisi nasıl yakalanır

getParams(MyFunc) // ["param1","param2","param3"] 
+1

Burada 'getParams' kullanmak ister misiniz? –

+0

Neye ulaşmaya çalışıyorsunuz? Yapabileceğiniz en iyi şey, işlevi bir dizeye dönüştürmek ve sonra parametreleri bir tür basit ayrıştırmayla ayıklamaktır. – Pointy

+0

Açısal olarak otomatik bağımlılık enjeksiyonuna ulaşmaya çalışıyorum. Örneğin, bir denetleyici işlevi MyCtrl ($ scope) varsa {} 'MyCtrl. $ Inject = getParams (MyCtrl); – frostme

cevap

0

aşağıdaki yapmak isterdiniz, ancak bir dizeye sizin işlevini dönüştürerek bu yapabilecekleriniz

function MyFunc(param1, param2, param3){ 
    //do all the things 
} 

aşağıda fonksiyonu verilmiş ve sonra sadece parametreleri almak kadar bölme:

var getFuncParams = function(MyFunc) { 
    var str = MyFunc.toString() 
    var strParams = str.substr((str.indexOf('(')+1), (str.indexOf(')') - str.indexOf('(')) - 1) 
    var params = strParams.split(",") 
    return params; 
} 
+0

yapılamıyor. teşekkürler yapmaya çalışıyordu! – frostme

+0

Sorun değil - Kendi işlevinin içinde olmak için biraz düzenledim. Umarım yardımcı olur! – millerbr

İlgili konular