为了账号安全,请及时绑定邮箱和手机立即绑定

任何人都可以解释为什么这个 Javascript 函数不能给出想要的结果?

任何人都可以解释为什么这个 Javascript 函数不能给出想要的结果?

HUWWW 2022-06-09 16:29:30
   function person1(name) {        var n = name;        return (function (n) {            alert(n);        })(n);    }    person1('susan')();    person1('peter')();第二个语句不能运行,任何人都可以给我一个正确的解释。
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

person1('susan')不返回函数,它返回undefined,所以你不能在之后调用它 -()脚本抛出的额外结果。


如果您想调用person1返回一个函数,该函数在调用时会提醒名称,删除n参数并返回一个提醒的函数name-但不要调用函数,只需调用return它,因此可以在外部调用返回的函数:


function person1(name) {

  return () => {

    console.log(name);

  };

}


person1('susan')();

person1('peter')();


查看完整回答
反对 回复 2022-06-09
?
FFIVE

TA贡献1797条经验 获得超6个赞

你的函数代码基本上没问题,但调用person1不行。您应该在调用后省略括号。因为您没有从person1. 实际上你根本没有返回值。


 function person1(name) {

    var n = name;

    return (function (n) {

        alert(n);

    })(n);

}


person1('susan');

person1('peter');


这可行,但可以简化。


查看完整回答
反对 回复 2022-06-09
  • 2 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号