JavaScript箭头函数转普通函数技术求助:特殊结构箭头函数转换难题
如何将特定箭头函数转换为普通函数?
嘿,我来帮你理清这个转换问题!先看看你的代码里的关键问题,再给你正确的转换方式:
首先看你提供的待转换箭头函数:
(name) => { `Bonjour, ${name} ! Comment vas-tu ?`; }
这里有个小坑:这个箭头函数里的模板字符串只是被执行了,但没有通过return返回,所以调用它的时候会得到undefined。如果你的目标是让函数返回这句问候语,正确的箭头函数写法应该是下面两种之一:
// 省略大括号自动返回 (name) => `Bonjour, ${name} ! Comment vas-tu ?` // 带大括号时必须显式写return (name) => { return `Bonjour, ${name} ! Comment vas-tu ?`; }
再看你尝试写的普通函数,明显是把箭头函数和普通函数的语法混在一起了,导致结构错误。下面是两种正确的普通函数转换方式:
方式1:函数声明(最常用)
function sayHello(name) { return `Bonjour, ${name} ! Comment vas-tu ?`; }
方式2:函数表达式(和原箭头函数的变量赋值形式对应)
如果你需要把函数赋值给变量,就用这种写法:
const sayHello = function(name) { return `Bonjour, ${name} ! Comment vas-tu ?`; };
简单总结转换逻辑:
- 去掉箭头
=>,换成function关键字放在参数前面 - 如果原箭头函数是带大括号的,确保保留
return语句(如果有返回值的话) - 不需要嵌套函数,直接把箭头函数的逻辑平移到普通函数里就行
内容的提问来源于stack exchange,提问作者Mathéo Perrot
相关产品推荐
相关产品推荐

