JavaScript 函数计算器

标签 javascript function math

我到目前为止:

function func(f,x) {
alert(f(x));
}

func(function(x) {return x*x;},2);

这行得通,但我认为传递 function(x) {return x*x;}, 是多余的,我可以传递 x*x,因为这个想法是我可以提供(几乎)任何功能。

我试过:

function func(f,y) {
g=function() {return f;};
alert(g(y));
}

func(x*x,2);

等等,但我无法让它工作。也许如果我将 'x*x' 作为字符串传递......?

最佳答案

你说的语法过多是正确的,但对于 ES5 和之前的版本,就是这样。

但是,在 ES6 中,您可以使用新的 "arrow function" lambda 语法:

func(x => x * x, 2);

参见 http://www.es6fiddle.net/i4o5uj2l/

FWIW,上面的 func 并不好,因为它只支持 unary 函数,即那些采用单个参数的函数。您可以扩展 func 以使用 ES6“传播参数”:

function func(f, ...args) {
  console.log(f.apply(this, args));
}

func((x, y) => x * y, 3, 7);
> 21

关于JavaScript 函数计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27840854/

相关文章:

javascript - 如何从模板外部调用 Angularjs 指令的方法?

javascript - 如何使用 JS 媒体查询(matchMedia())在移动设备中打开单个 Accordion 面板,并在桌面上打开多个面板?

javascript - 有没有办法保存单个图像并防止用户使用 dropzone.js 放置多个图像?

linux - 是否可以从 main.bash 运行特定函数,而函数存在于 functions.bash 脚本中

math - 密码散列函数是否达到每个可能的值,即它们是否是宾语?

javascript - Tensorboard 未在 Google Chrome 中运行

python - Python 中的直角锐角三角形和钝角三角形

JavaScript 指针函数

math - 并行任意精度算术库

c++ - 如何知道线段是否与 3d 空间中的三角形相交?