Javascript 接受参数并返回该参数的函数
我试着把我的头脑集中在一个事实上,Javascript 接受参数并返回该参数的函数,javascript,scope,Javascript,Scope,我试着把我的头脑集中在一个事实上,某物等于返回的匿名函数值。我认为通过作用域,它将无法访问函数变量 那么调用某物如何得到3的值呢 function somefun (x){ return function(){ return x; } } var something = somefun (3); something(); //3 在JavaScript中,函数只是对象,就像其他任何东西一样。函数可以分配给变量 因此,somefun返回一个函数,
某物
等于返回的匿名函数值。我认为通过作用域,它将无法访问函数变量
那么调用某物如何得到3的值呢
function somefun (x){
return function(){
return x;
}
}
var something = somefun (3);
something();
//3
在JavaScript中,函数只是对象,就像其他任何东西一样。函数可以分配给变量
因此,somefun
返回一个函数,该函数被分配给something
。因此,某物
是一个函数
因此,当运行something()
时,它会返回一个值,因为它是一个函数
该函数称为“闭包”。它保留对x
值的引用,这就是它返回给您的原因。您的问题是什么?不,这里没有范围问题。我建议读一篇关于javascript作用域/闭包的好文章。好吧,我知道x
除了somefun
之外什么都不知道,那么somefun
现在如何访问sunfun
@JamieHutber内部的变量呢?正如我所写的,读一篇关于这个问题的好文章。你只是对这项工作的方式/原因有一个错误的概念。请看火箭队的回答:)我读了很多好书。其中道格拉斯先生的好部分。所以它运行的功能,酷。啊,裤子。现在有意义了,因为您将函数赋予了一个变量。我知道这一点。我刚刚放了一个脑屁!