Javascript created(){}vs created:function(){}

Javascript created(){}vs created:function(){},javascript,ecmascript-6,vue.js,Javascript,Ecmascript 6,Vue.js,我见过一些人用 created: function() { // code } 而且 created () { // code } 然后在Vue文档中警告不要这样做 created: () => { // code } 我知道第一个是编写函数的常用方法,最后一个是新的es6 arrow函数,它将“this”关键字绑定到作用域。但是中间的那个是什么呢?它看起来是两者的混合体。使用它意味着什么?第一个和第二个是相同的。第二个是定义对象中函数的ES6语法 const obj

我见过一些人用

created: function() {
  // code
}
而且

created () {
  // code
}
然后在Vue文档中警告不要这样做

created: () => {
  // code
} 

我知道第一个是编写函数的常用方法,最后一个是新的es6 arrow函数,它将“this”关键字绑定到作用域。但是中间的那个是什么呢?它看起来是两者的混合体。使用它意味着什么?

第一个和第二个是相同的。第二个是定义对象中函数的
ES6
语法

const obj1={
名称:“Obj1”,
创建(){
console.log(this.name);
}
};
常数obj2={
名称:“Obj2”,
创建:函数(){
console.log(this.name);
}
};
obj1.create();

obj2.create()中间的一个可能来自javascript类,您确定在第二个之前没有
函数
,如
函数created(){//code}
?如前所述,它的语法是无效的,除非它位于类中(h/t@charlietfl,他首先指出了这一点)。@EdCottrell它在对象文本中也是有效的(就像第一个和第三个示例一样),而对象文本不是es5兼容的。。。老实说,我知道你可以在新类中做到这一点……但我不知道它在对象文本中起作用too@charlietflES6确实引入了一些无用的语法糖(以我的拙见)。@WaldemarIce我知道这很难承认,但ES6不是必需的:-P