Javascript 为什么JS允许声明这个函数?

Javascript 为什么JS允许声明这个函数?,javascript,function,function-declaration,Javascript,Function,Function Declaration,我有一个关于JS函数的贴花的问题。 我声明了一个函数,如下所示: create=(name,agfdf,gender)=>({name,a,gender}); (name,agfdf,gender)=>({name,a,gender}) 传递的参数是agfdf,但输出不包含agfdf。功能acutally起作用: input: create("P",3,"M") output: {name: "P", a: 3.6, gender: "M"} a: 3.6 gender: "M"

我有一个关于JS函数的贴花的问题。 我声明了一个函数,如下所示:

create=(name,agfdf,gender)=>({name,a,gender});
(name,agfdf,gender)=>({name,a,gender})
传递的参数是agfdf,但输出不包含agfdf。功能acutally起作用:

input: create("P",3,"M")
output: {name: "P", a: 3.6, gender: "M"}
a: 3.6
gender: "M"
name: "P"
__proto__: Object

我不明白这是怎么回事。你们谁能解释一下吗?非常感谢

这种类型的函数在js中称为箭头函数。 声明函数是es6语法

let a = ()=>{return 1;}
let b = value=>{return value;}
let c = (value1,value2)=>{return {value1,value2};}
在你的js中

create=(name,agfdf,gender)=>({name,a,gender});

您将第二个参数作为agfdf,但返回a。这可能是在代码中的某个地方初始化的

编写相同代码的详细方式,可能是更明显的行为指标,是函数createname,A,gender{return{name:name,A:A,gender:gender};}谢谢您的回答。如果在此声明之前我没有初始化,它将生成一个错误,对吗?