如何使用相同的方法,但每次响应调用不同的方法?

时间:2017-12-08 08:08:15

标签: angular

我有方法InfoDetails();我需要在不同的方法中调用该方法,但是为了响应调用其他方法的不同方法。所以我想要的是这样的:

InfoDetails(methodName){
  this.methodName(params);
}

有任何建议我该怎么做?

2 个答案:

答案 0 :(得分:3)

如果我理解你,我不确定我是谁。 你可以做这样的事情

InfoDetails = function(methodName){
  return window[methodName](arguments)
}

mymethod1 = function(params){
     return 'mymethod1'
}
mymethod2 = function(params){
      return 'mymethod2'
}
console.log(InfoDetails('mymethod1'))
console.log(InfoDetails('mymethod2'))


//or its the function own method
InfoDetails = function(methodName){
  return this[methodName](arguments)
}

InfoDetails.prototype.mymethod1 = function(params){
     return 'mymethod1'
}
InfoDetails.prototype.mymethod2 = function(params){
      return 'mymethod2'
}
var a =  InfoDetails('mymethod1')
console.log(a)

答案 1 :(得分:1)

你可以简单地调用作为参数传递的方法,但我会检查它是否类型函数只是为了更具防御性

InfoDetails(methodName, params){
    if(typeof methodName === ‘function’){
       methodName(params);
    }
}