【问题标题】:Checking argument names inside a function检查函数内的参数名称
【发布时间】:2014-10-17 14:53:30
【问题描述】:

在 javascript 中有没有办法检查函数内的参数标识符名称???例如:

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

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

我想问在这个例子中是否有可以替代 -callback.definedArgumentName- 的东西。

【问题讨论】:

  • 不是一个简单的方法,而是you can convert callback 到一个字符串,并从中检索参数名称。
  • 你到底为什么要这么做?这听起来像是一个可怕的黑客攻击,可能应该以其他方式解决。你真正想解决什么问题?
  • 我试图了解在 angularJs 中他们如何仅通过函数定义中的参数名称知道函数定义中提供的服务
  • 我的意思是例如 myApp.controller('name',function($scope,myService){});

标签: javascript function callback arguments identifier


【解决方案1】:

所以我发布了这个问题,因为我想知道在 AngularJs 中它们如何识别您传递给控制器​​的服务的顺序,以及您在控制器定义中指定的控制器的名称。

Teemu 的回答可能是正确的,我尝试了他的建议,显然你只需要一些功能并不难。我做了一个例子:

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)
});

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 2021-10-31
    • 1970-01-01
    • 2010-10-29
    • 2018-10-17
    • 1970-01-01
    • 2012-05-12
    • 2021-05-25
    • 2023-03-17
    相关资源
    最近更新 更多