有人可以向我解释 javascript 中的这个箭头函数吗?

Can sombody explain me this arrow function in javascript?

代码如下:

const createI18n = (config) => ({
    locale: ref(config.locale),
    messages: config.messages,
    $t(key) {
        return this.messages[this.locale.value][key]
    },
})

locale是对象还是对象的属性?

我是 javascript 的新手,我真的很难理解这个箭头函数。

这与箭头函数无关。

locale是对象的属性名称。

属性 的值是另一个对象(上面有一个名为 value 的 属性)。

为了更好地理解这里发生了什么,您可以看一下等效的普通函数:

    function createI18n(config){
        return {
           locale: ref(config.locale),
           messages: config.messages,
           $t(key) {
              return this.messages[this.locale.value][key]
           }
        }
}

所以基本上你是 return 从那个箭头函数中获取一个对象。 您还使用了箭头函数的 shorthand 版本,它省略了 return 关键字。

所以这两个也等同于上面那个

const createI18n = (config) => ({
    locale: ref(config.locale),
    messages: config.messages,
    $t(key) {
        return this.messages[this.locale.value][key]
    },
})

const createI18n = (config) => {
/* you could do some operations here, but not in the shorthand version */
return {
    locale: ref(config.locale),
    messages: config.messages,
    $t(key) {
        return this.messages[this.locale.value][key]
    },
  }
}

只是写函数比较方便的一种

更新: 结果对象将如下所示:

{
 locale: //some value,
 messages: //some other value,
 $t: // function
}

更新 2: 您可以重写您的函数以在控制台中观察结果。

const createI18n = (config) => {
const result = {
     locale: ref(config.locale),
     messages: config.messages,
     $t(key) {
         return this.messages[this.locale.value][key]
     },
 }
 console.log(result);
 return result
}