2014-10-17 49 views
0

有沒有在javascript中檢查函數內參數標識符名稱的方法???例如:檢查函數內部的參數名稱

var config = function(callback){ 
    if(callback.definedArgumentName == 'argumentName') //do something 
}; 

config(function(argumentName){ 
    //do something 
}); 

我在問是否有什麼東西可以替換-callback.definedArgumentName-在這個例子中。

+1

不是一個簡單的方法,但[你可以轉換]從它(http://jsfiddle.net/ydcqa3vo/2/)'callback'爲一個字符串,並檢索參數名。 – Teemu 2014-10-17 15:09:31

+2

爲什麼在這個世界上你想要做到這一點?這聽起來像是一個可怕的黑客,應該可以通過其他方式解決。你真的想解決什麼問題? – jfriend00 2014-10-17 15:32:24

+0

我想了解如何在angularJs他們知道在功能defenition中提供的srvices只能通過參數名稱在函數defenition – 2014-10-17 19:54:07

回答

0

所以我發佈了這個問題,因爲我想知道如何在AngularJs中識別您傳遞給控制器​​的服務的順序以及您在控制器defenition中指定的控制器的名稱。

泰姆的答案可能是正確的,我試過他的建議,顯然它不難做到只是需要一些功能。我做了一個例子:

var services = { 
       '$scope': 'this is the scope service. ', 
       'myService' : 'this is your own service.' 
       }; 

function controller(callback){ 
    var args = callback.toString().split('('); 
    args.splice(0,1); 
    args = args.join().split(')'); 
    args.splice(1,args.length-1); 
    args = args.join(); 
    argNames = args.split(','); 
    callback(services[argNames[0]],services[argNames[1]]) 
} 

controller(function($scope,myService){ 
    console.log(services.$scope,services.myService) 
});