创建能够记住其状态的函数

来源:互联网 发布:工资算法公式 编辑:程序博客网 时间:2024/05/22 16:53

问题:想要创建一个函数,它能够记住数据,但是不必是全局变量,并且不必对每个函数重新发送相同的数据。
解决方案:使用闭包

function greetingMaker(greeting){    function addName(name){        return greeting+ " " + name;     }    return addName;}//创建一个新的局部函数var daytimeGreeting = greetingMaker("Good Day to you");var nightGreeting = greetingMaker("Good Evening");//如果是白天console.log(daytimeGreeting("Marry"));//如果是黑夜console.log(nightGreeting("Dock"));//输出"Good Day to you Marry""Good Evening Dock"

闭包的优点:可以使内部函数访问外部函数的作用域
闭包的缺点:内存泄露

原创粉丝点击