如何执行作为参数传递给函数的方法

Muh*_*mar 60 javascript invoke method-invocation

我想在JavaScript中编写自己的函数,它将一个回调方法作为参数并在完成后执行它,我不知道如何在我的方法中调用一个作为参数传递的方法.喜欢反思.

示例代码

function myfunction(param1, callbackfunction)
{
    //do processing here
    //how to invoke callbackfunction at this point?
}

//this is the function call to myfunction
myfunction("hello", function(){
   //call back method implementation here
});
Run Code Online (Sandbox Code Playgroud)

lon*_*day 84

您可以将其称为正常功能:

function myfunction(param1, callbackfunction)
{
    //do processing here
    callbackfunction();
}
Run Code Online (Sandbox Code Playgroud)

唯一额外的事情是提到背景.如果您希望能够this在回调中使用关键字,则必须分配该关键字.这通常是理想的行为.例如:

function myfunction(param1, callbackfunction)
{
    //do processing here
    callbackfunction.call(param1);
}
Run Code Online (Sandbox Code Playgroud)

在回调中,您现在可以访问param1this.见Function.call.


Kir*_*ran 5

我也遇到了同样的情况,我必须调用作为参数发送给另一个函数的函数。

我试过

mainfunction('callThisFunction');
Run Code Online (Sandbox Code Playgroud)

第一种方法

function mainFuntion(functionName)
{
    functionName();
}
Run Code Online (Sandbox Code Playgroud)

但最终会出错。所以我试过了

第二种方法

functionName.call(). 
Run Code Online (Sandbox Code Playgroud)

还是没用。所以我试过了

第三种方法

this[functionName]();
Run Code Online (Sandbox Code Playgroud)

这就像一个冠军。所以这只是增加了一种调用方式。可能我的第一种和第二种方法可能存在问题,但我更多地使用谷歌搜索并花时间选择了第三种方法。

  • 如果您将函数作为参数传递,如 mainfunction(callThisFunction); ,则前两种方法有效;而不是作为字符串。但无论如何是的,你有第三种方法:) (5认同)