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')();

FFIVE
TA贡献1797条经验 获得超6个赞
你的函数代码基本上没问题,但调用person1不行。您应该在调用后省略括号。因为您没有从person1. 实际上你根本没有返回值。
function person1(name) {
var n = name;
return (function (n) {
alert(n);
})(n);
}
person1('susan');
person1('peter');
这可行,但可以简化。
添加回答
举报
0/150
提交
取消