Javascript:这两个胖箭头函数有什么区别?

时间:2017-11-23 22:33:35

标签: javascript ecmascript-6

const f = ({x,y})=>{...do something...};

const f = (x,y)=>{...do something...};

这两行之间有什么区别?

我的理解是通过" x"和" y"是论据。

两者是否相同?

2 个答案:

答案 0 :(得分:1)

第一个使用解构,你可以用它作为

f({x: 0, y: 1})

传递一个带有字段x和y的对象

然后在正文中,您可以将对象字段作为变量xy来访问。

在第二个中你必须传递2个变量

f(0, 1)

身体可以与这些功能相同,并且它们可以类似地起作用 例如

=> { return x + y; }

但是params应该以不同的方式传递

答案 1 :(得分:0)

您将第一个对象作为参数传递。但我不认为这是一个有效的例子。这是一个

class O {
  x;
  y;
}
const example =(o:O)=>{
 //do something 
  return o.x+o.y;
};

等效于

var example = function example(o) {
  //do something 
  return o.x+o.y;
};

你传递两个参数的第二个是等效的

var example2 = function example2(x, y) {
  //do something 
  return 0;
};