我有方法InfoDetails();
我需要在不同的方法中调用该方法,但是为了响应调用其他方法的不同方法。所以我想要的是这样的:
InfoDetails(methodName){
this.methodName(params);
}
有任何建议我该怎么做?
答案 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);
}
}