2017-05-24 34 views
-3

有人请向我解释一下这段特定的代码如何在计算器的环境中工作?我不熟悉箭头功能。感谢您的时间。我需要帮助理解这段代码(不熟悉箭头功能)

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; 
+1

该代码看起来并不完整。 – Steve

+0

看起来像ECMA脚本6代码 – azad

回答

1

这是一个算术运算的映射。

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

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

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

0

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

例如

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

等于

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

箭头功能不是“快捷方式”,并且在几个重要的方法上与“正常”功能有所不同。 [MDN文档](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) –