让我们在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
闭合的魔力:
在这两种情况下,封闭都可以帮助您记住事物。就像您的魔法食谱保留在成分上一样,即使完成了主要任务,也要记住数据。这就像在编码中有记忆!
结论:
封闭听起来很棘手,但实际上它们非常有帮助。他们就像小助手,对我们记住重要的东西。因此,无论您是做饭还是管理金钱,都可以在编码世界中更容易。