你将如何转换:
(function(age) {return `your ${age}`;
})(10);一个箭头函数?我试过了,但不起作用:
(const years = (age) => `your ${age}`)(10);为什么不工作,如果是因为康斯特?
然后再举一个例子,如果我说:
const marco= { name: 'marco ccc',
say hi: function () {
return 'something';
}
}如何将sayHi转换为箭头函数?
发布于 2020-12-05 23:59:43
表达式分配给变量。箭头函数通常由两个部分组成:分配给它的变量和主体,例如:
const foo = () => { ... }
// ^ variable
^^^^ function body变量的初始化只能作为语句在独立行上进行;const不能放在括号内。您只需要将返回值分配给的变量从(函数体和函数调用)中分离出来:
const years = ((age) => `your ${age}`)(10);
// ^^^^^^^^^^^^^^^^^^^^^^
// this is the function body
// that needs to be invoked immediately
// ^^ with the (10)
// ^^^^^ with the result assigned to `years`
console.log(years);
在对象中,只需将function()替换为() => (请注意,say hi不是对象文本中的有效对象属性--要么用引号包围它,要么使用单个单词):
const marco = {
name: 'marco ccc',
sayHi: () => {
return 'something';
}
};
console.log(marco.sayHi());
发布于 2020-12-06 00:48:01
在创建异步闭包时,我经常这样做,这样我就可以在非异步函数体中使用await。看起来是这样的:
(async (arg1,arg2) => {
console.log(arg1,arg2); // logs a,b
})('a','b');它使我免于创建一个const,然后调用它,如下所示:
const outerFunc = () => {
// ... some code
const innerFunc = async () => {
// I can use await in here
};
innerFunc();
}相反,我这样做:
const outerFunc = () => {
// ... some code
(async () => {
// I can use await in here
})();
}若要juse创建闭包,请关闭异步部分。
((...args) => console.log(...args))('a','b');编辑:如果你仔细观察上面的内容,你会发现它实际上缩短到了
(console.log)('a','b')发布于 2020-12-06 01:17:33
因此,基本上我想转换这两个函数(旧版本):
(function(age) {return `your ${age}`;
})(10);和
const marco= { name: 'marco ccc',
say hi: function () {
return 'something';
}
}
console.log(marco.sayHi());它们分别是:
((age) => your age is ${age})(10);和
const marco= { name: 'marco ccc', sayHi: () => {} }但除此之外,我还试图了解生活的好处,例如:
const years = ((age) => your ${age})(10); 是比以下内容更短的版本:
const years = (age) => your ${age};
const whatever = years(10);
console.log(whatever);https://stackoverflow.com/questions/65163255
复制相似问题