首页 > 解决方案 > 如何根据需要运行此 Javascript 问题?

问题描述

我需要一个接一个地从输入中获取输出:-

  1. 输入:John Lennon
  2. 输出:John Lennon
  3. 输入:John Lennon
  4. 输出:John Lennon
  5. 再次输入:George Harrison
  6. 输出:John Lennon
  7. 输入:Paul McCartney
  8. 输出:Paul McCartney
  9. 再次输入:John Lennon
  10. 输出:Paul McCartney

要重新测试,您必须刷新浏览器页面

let rememberedMan;

const getName = (name) => {
    rememberedMan = 'John Lennon';
    
    if(name === 'John Lennon') {
        return rememberedMan;
    }

    if(name === 'George Harrison') {
        return rememberedMan;
    }

    rememberedMan = 'Paul McCartney';

    if(name === 'John Lennon') {
        return rememberedMan;
    }
    
    return name;
}

每次输入输入时我都想一一实现所有输出

标签: javascriptfunctionscopeclosures

解决方案


如果我的理解是正确的,那么这个输入又是关于调用另一个函数的函数,对吗?,还有闭包的使用,它允许我们返回第一个函数的参数,即使它已经完成执行,所以你可以把输入然后另一个输入放在被调用的函数中,并期望他们想要的输出你也可以只调用第二个函数没有输入,因为参数有默认值

const getName = name => {
  return function (arg2 = 'John Lennon') {
    if (arg2 === 'George Harrison') return name;
    if (arg2 === 'John Lennon') return name;
    return arg2;
  };
};

console.log(getName('John Lennon')('George Harrison'));

无论如何,这就是我正在尝试的,你能检查一下并告诉我这是否是你的意思吗?


推荐阅读