对象文字中函数声明和函数表达式的区别

时间:2018-04-02 20:48:15

标签: javascript

假设我有一个方法的对象文字:

const testObj = {
   method: function() {
      console.log('declaration');
   } 
}

与另一种方式定义的metod相同的对象:

const testObj = {
   method() {
     console.log('declaration');
   }
}

上面两个例子中定义方法字段的区别是什么?我知道函数提升和函数声明可以在它们出现在代码中之前使用,但是当将函数定义为对象字段时,它似乎并不重要。

3 个答案:

答案 0 :(得分:2)

根据MDN

,实际上没有区别
  

从ECMAScript 2015开始,这是方法定义的更短语法   on objects初始化器的介绍。这是一个简写   分配给方法名称的函数。

答案 1 :(得分:0)

没有区别。后者只是编写相同内容的简写语法。

例如,在CSS中,您可以为每个角分别指定不同的边框半径:writeFile。简写如下:border-top-radius: 5px

查看MDN上的this页面,了解有关方法功能的更多信息。

编辑:修正了拼写错误。

答案 2 :(得分:0)

两者之间没有区别。一个只是另一个的简写。来自the docs

  

从ECMAScript 2015开始,这是方法定义的更短语法   on objects初始化器的介绍。 这是一个简写   分配给方法名称的函数。

文档继续给出这个例子:

  

给出以下代码:

var obj = {
    foo: function() {
        /* code */
    },
    bar: function() {
        /* code */
    }
};
     

您现在可以将其缩短为:

var obj = {
    foo() {
        /* code */
    },
    bar() {
        /* code */
    }
};