在javascript对象内部创建函数的不同方式有什么区别?

问题描述:

方法1方法2有什么区别?在javascript对象内部创建函数的不同方式有什么区别?

let myObject = { 
    method1: function(x){ 
     console.log(...); 
    }, 
    method2(x){ 
     console.log(...); 
    } 
} 
+0

'method2'实际上是打字稿。 not javascript –

+0

你在问语法上正确和不正确的东西之间的区别。 *编辑:看来我错了,thans纠正我。* – Glubus

+4

@Glubus,Jamiec:它是有效的es2015(如果我们添加逗号):https://monosnap.com/file/tpWRqrOSNB2q4sjwm7HbVCLWOX7sCU.png –

没有区别。 method2只是ES6中引入的简写语法。

从ECMAScript 2015开始,引入了对象初始值设定项上方法定义的较短语法。它是分配给方法名称的函数的简写。

来源:https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Method_definitions

这里没有真正的区别,如在注释中规定。

这只是一个“你想怎么写”的问题。

但是,如果您正在开始一个项目,您应该选择一种方式并坚持下去,如果项目已经开始,请尝试坚持最常用的方式。这将很容易读取代码。

此外,如果它是关于范围或绑定,你应该看看这里:

http://2ality.com/2015/02/es6-scoping.html