猿问

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

   function person1(name) {

        var n = name;

        return (function (n) {

            alert(n);

        })(n);

    }


    person1('susan')();

    person1('peter')();


第二个语句不能运行,任何人都可以给我一个正确的解释。


HUWWW
浏览 193回答 2
2回答

开心每一天1111

person1('susan')不返回函数,它返回undefined,所以你不能在之后调用它 -()脚本抛出的额外结果。如果您想调用person1返回一个函数,该函数在调用时会提醒名称,删除n参数并返回一个提醒的函数name-但不要调用函数,只需调用return它,因此可以在外部调用返回的函数:function person1(name) {  return () => {    console.log(name);  };}person1('susan')();person1('peter')();

FFIVE

你的函数代码基本上没问题,但调用person1不行。您应该在调用后省略括号。因为您没有从person1. 实际上你根本没有返回值。 function person1(name) {    var n = name;    return (function (n) {        alert(n);    })(n);}person1('susan');person1('peter');这可行,但可以简化。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答