我需要帮助理解这段代码(不熟悉箭头功能)

时间:2017-05-24 05:32:03

标签: javascript arrays

有人可以向我解释一下这段特定的代码在计算器的上下文中是如何工作的吗?我不熟悉箭头功能。谢谢你的时间。

function calculate(calc) {
//Perform a calculation expressed as an array of operators and numbers.
var ops = [{'^': (a, b) => Math.pow(a, b)},
           {'*': (a, b) => a * b, '/': (a, b) => a / b},
           {'+': (a, b) => a + b, '-': (a, b) => a - b}],
    newCalc = [],
    currentOp;

2 个答案:

答案 0 :(得分:1)

它是算术运算的地图。

所以'^': (a, b) => Math.pow(a, b)转换为正常功能

'^': function (a, b) {
    return Math.pow(a, b);
}

您的代码缺少实际调用,ops结构应该是一维而不是二维。 (var ops = {'^': ..., '*': ..., '+': ...}

答案 1 :(得分:0)

箭头函数表达式的语法比函数表达式短,并且不绑定它自己的this,arguments,super或new.target。这些函数表达式最适合非方法函数,不能用作构造函数。

例如

function(a,b){
  //do  something
}

等于

(a,b) => {
 // do something
}