Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 - Fatal编程技术网

有人能给我解释一下为什么这个Javascript函数不能给出期望的结果吗?

有人能给我解释一下为什么这个Javascript函数不能给出期望的结果吗?,javascript,Javascript,职能人员1(姓名){ var n=名称; 返回(函数(n){ 警报(n); })(n) ); } person1('susan')(); person1('peter')()person1('susan')不返回函数,它返回未定义的,因此以后不能调用它-额外的()会导致脚本抛出 如果您希望调用person1返回一个函数,在调用该函数时,该函数会提醒名称,请删除n参数,并返回一个提醒name的函数,但不调用该函数,只需返回它,这样就可以在外部调用返回的函数: 职能人员1(姓名){ return(

职能人员1(姓名){
var n=名称;
返回(函数(n){
警报(n);
})(n) );
}
person1('susan')();
person1('peter')()
person1('susan')
不返回函数,它返回
未定义的
,因此以后不能调用它-额外的
()
会导致脚本抛出

如果您希望调用
person1
返回一个函数,在调用该函数时,该函数会提醒名称,请删除
n
参数,并返回一个提醒
name
的函数,但不调用该函数,只需
返回它,这样就可以在外部调用返回的函数:

职能人员1(姓名){
return()=>{
console.log(名称);
};
}
person1('susan')();

person1('peter')()函数的代码基本正常,但调用人员1
则不正常。您应该省略调用后的括号。因为您没有从
person1
返回函数。实际上,您根本没有返回值

 function person1(name) {
    var n = name;
    return (function (n) {
        alert(n);
    })(n);
}

person1('susan');
person1('peter');


这会起作用,但可以简化。

当然,在这种情况下,函数可以简化为
函数person1(name){alert(name);}
@FelixKling我知道,但问题是为什么它不起作用。因此,我修改了原始代码以说明问题:-)。在我点击提交按钮之前,已经给出了返回函数的正确解决方案。