有人可以向我解释 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
}
代码如下:
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
}