对象文字函数创建

时间:2018-03-08 21:48:22

标签: javascript

无法在网络上的任何位置找到此信息。使用对象文字语法创建的这两个方法之间是否存在任何差异(例如性能)?或者引擎盖下的机制完全相同?

let test = {

  foo(){
    console.log("foo");
    return 1;
  },
  bar: () => {
    console.log("bar");
    }
}


console.log(test.foo());
console.log(test.bar());

1 个答案:

答案 0 :(得分:1)

不应该有任何性能差异 - 简写函数属性只是语法糖。

但是,存在操作差异。简写符号是传统函数语法的缩写,而不是箭头函数。所以它相当于:

foo: function() {
    console.log("foo");
}

箭头函数与传统函数表达式有许多不同的行为。见Arrow function vs function declaration / expressions: Are they equivalent / exchangeable?

您的示例函数不会执行任何取决于差异的操作,但在实际应用程序中可能会这样做。