如何编写一个JavaScript函数来调用作为参数传递的另一个函数?

时间:2016-04-08 12:52:06

标签: javascript function math

我正在尝试编写一个JavaScript函数,它将使用Simpson规则集成函数。我完全理解Simpson规则背后的数学,但我不确定如何编写一个能够集成另一个函数的函数。这是我想要实现的代码:

integrate = function(leftBound, rightBound, numSubIntervals, expression) {

    var a = leftBound,
        b = rightBound,
        n = numSubIntervals,
        myFunc = expression;

    /*implementation of simpson's rule..*/

    return result;
}

我的问题是我不知道如何将数学表达式(要集成的函数)作为参数传递而不做像将其作为字符串传递并使用eval()这样的东西,这不是我想要的东西做。我也不想使用任何第三方库。我想只使用vanilla JavaScript编写函数。我在这里缺少什么 - 有一个明显的解决方案吗?

2 个答案:

答案 0 :(得分:2)

函数本身可以是其他函数的参数。例如:

integrate

此示例采用一个给定X并将其平方的函数。在integrate内,您可以在x的给定间隔内调用此函数,以使用Simpson规则集成此函数。

var point = expression(x); 内,调用传递给它的函数的语法是:

x

其中expression是传递给名为point的函数的值,expression是{{1}}的返回值。

答案 1 :(得分:2)

这是我的答案 - 我的评论版本。您可以将该函数作为参数传递,然后从内部调用它。

integrate = function(leftBound, rightBound, numSubIntervals, expression) {

    var a = leftBound,
        b = rightBound,
        n = numSubIntervals,
        myFunc = expression;

    /*implementation of simpson's rule..*/
    result = (b-a)/6 * (expression(a) + 4*f* ... );

    return result;
}

var toIntegrate = function(x){
  return 2*x*x*x - 3*x*x + 2*x - 1;
}

integrate(0, 10, 10, toIntegrate);