JavaScript关闭
#javascript #example #closures #javascriptclosures

让我们在JavaScript中探索一个迷人的概念,称为Closures。将它们视为记住重要事物的特殊编码工具,就像一个神奇的保险库一样,即使在所有者离开后也可以确保有价值的信息安全。就像厨师的食谱书在烹饪后很长一段时间内掌握成分的记忆一样,JavaScript中的关闭也可以记住重要的数据。我们将浏览现实生活中的示例,即使英语不是您的母语,也可以轻松地了解关闭。

了解JavaScript中的关闭

封闭听起来可能很复杂,但它们实际上就像有用的朋友一样,记得我们的事情。它们用于编码以使任务更容易。想象一下日常情况:烹饪和处理钱。这些方案将向您展示闭合的工作方式。

方案1:烹饪连接

想象您是厨房里的厨师,可以制作美味的菜肴。您有一本神奇的食谱,不仅可以引导您浏览食谱,还可以记住您使用的所有成分。即使完成烹饪后,食谱也可以保留您添加的内容的记忆。关闭以类似的方式工作。他们就像小助手一样记得过去的事情,即使那段时间结束了。

烹饪方案代码:

function prepareDish(dishName) {
    const ingrediants=[];
    function addIngrediants(ingrediant) {
        ingrediants.push(ingrediant);
        console.log(`${ingrediant} added to ${dishName}`);
    };
    return addIngrediants;
}

const preparePasta = prepareDish("Pasta");
const prepareSoup=prepareDish("Soup");

preparePasta("Pasta Noodles");
prepareSoup("Tomato Souce")

preparePasta("Chicken Broth");
prepareSoup("Carrots")

上述代码的输出将如下:

添加到意大利面的面食
番茄souce添加到汤中

鸡肉汤添加到面食
胡萝卜添加到汤

方案2:货币经理

现在,让我们切换到另一个场景 - 管理金钱。想象一下,您是一家公司的经理,跟踪员工薪水。您写下每个员工赚取的收入,然后计算总金额。就像在烹饪情况下一样,关闭在这里工作。即使完成了主要工作,他们也可以帮助记住重要细节。

金钱方案代码:

function createSalaryTracker() {
  let salaries = [];
  function addSalary(employee, amount) {
    salaries.push({ employee, amount });
    console.log(`Added ${amount} salary to ${employee}'s account`);
  }

  function calculateTotalSalary() {
    let total = 0;
    for (let record of salaries) {
      total += record?.amount;
    }
    return total;
  }

  return {
    addSalary,
    calculateTotalSalary,
  };
}

const salaryTracker = createSalaryTracker();
salaryTracker.addSalary("Alice", 50000);
salaryTracker.addSalary("Bob", 25000);

const totalSalary = salaryTracker.calculateTotalSalary();

console.log(`Total Salary: ${totalSalary}`);

上述代码的输出将如下:

向爱丽丝帐户增加了50000薪水
向鲍勃的帐户增加了25000薪

总薪金:75000

闭合的魔力:
在这两种情况下,封闭都可以帮助您记住事物。就像您的魔法食谱保留在成分上一样,即使完成了主要任务,也要记住数据。这就像在编码中有记忆!

结论:
封闭听起来很棘手,但实际上它们非常有帮助。他们就像小助手,对我们记住重要的东西。因此,无论您是做饭还是管理金钱,都可以在编码世界中更容易。