Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下面的函数从何处获取参数?_Javascript_Function - Fatal编程技术网

Javascript 下面的函数从何处获取参数?

Javascript 下面的函数从何处获取参数?,javascript,function,Javascript,Function,函数getFunc未传递参数,为什么此代码有效 function getFunc() { const a = 7; return b => { console.log(a+b); } } const f = getFunc(); f(5); //12 getFunc返回匿名函数 b =>{ console.log(a+b); } b => { console.log(a+b); } 因此,当您调用getFunc时,

函数
getFunc
未传递参数,为什么此代码有效

function getFunc() {
    const a = 7;

    return b => {
        console.log(a+b);
    } }

const f = getFunc();

f(5); //12

getFunc返回匿名函数

b =>{
  console.log(a+b);
}
b => {
    console.log(a+b);
}
因此,当您调用getFunc时,实际上是在调用
console.log(7+参数)

它被称为闭包

在JavaScript中,函数中的代码可以访问该函数中定义的变量以及所有父函数中定义的变量。 如果引用父函数中定义的子函数中的变量,然后返回子函数,JavaScript将保留父函数中的变量,这些变量将在返回的函数中可用

在您的示例中,您将返回子函数

b =>{
  console.log(a+b);
}
b => {
    console.log(a+b);
}

getFunc
函数,这样子函数仍然可以访问父函数中定义的变量
a
。当您执行
f(5)
子函数执行
7+5
表达式时,您会在控制台中得到
12

调用
getFunc
返回的函数确实包含一个参数。您是从
getFunc
Ref返回一个函数。传递一个指向书籍的链接本身并没有多大帮助。关于闭包的部分在第五章中介绍。我理解你的意思,但你写的是错误的。调用getFunc时从不调用Console.log。非常感谢,我现在明白了。Plus Closure const f=function(b){console.log(a+b)}非常感谢,我现在明白了。非常感谢,我现在明白了。很高兴帮助您。将我的答案标记为“答案”。其他用户也可以找到这个答案