JavaScript 如何写匿名函数

你或许在写网页时,见过这样的代码:点击一个按钮后,页面会弹出问候语,而控制这个动作的函数,好像没有名字。这就是JavaScript里的匿名函数——它就像你出门买东西时用的小名,不用登记在户口本上,却能精准完成眼前的任务。

什么是匿名函数?

简单说,匿名函数就是没有函数名的函数。平时我们写一个有名字的函数,会这么写:

JavaScript 如何写匿名函数

`javascript

function sayHello() {

console.log("你好呀!");

}

`

这个sayHello就是函数名,方便之后随时调用。但匿名函数没有这个名字,它更像“临时用一次的工具”,用完就可以暂时“隐身”。

最常见的用法:给事件当“临时指令”

你打开一个购物网页,点击“加入购物车”按钮,按钮需要一个“点击后做什么”的指令,这时候用匿名函数就很合适。比如:

`javascript

// 给按钮加点击事件,点击就弹出提示

document.getElementById("addCart").addEventListener("click", function() {

alert("商品已加入购物车!");

});

`

这里function(){...}就是匿名函数——它不用取名字,专门给addEventListener这个方法当参数,告诉浏览器“点击按钮要执行这段代码”。如果给它起名字反而多余,因为除了这次点击,我们不会再调用这个指令。

另一种常用方式:把函数当“数据”存起来

JavaScript里,函数可以像数字、文字一样,当成“数据”存进变量里,这时候也常常用匿名函数。比如我们想统计一天内用户的点击次数,把计数的逻辑存成变量:

`javascript

// 把匿名函数存进变量countClick,相当于给临时工具贴个标签

const countClick = function() {

let num = 0;

return function() { return num++; };

};

// 每次调用countClick(),就会多1次计数

const todayClick = countClick();

console.log(todayClick()); // 输出0

console.log(todayClick()); // 输出1

`

这里的function(){}()就是匿名函数,它被存进countClick变量,之后再通过这个变量调用——相当于给“临时工具”贴了个标签,下次要用到时,不用重新造一个,直接拿标签用就行。

还有一种“立即执行”的用法:用完就消失

有时候我们需要代码只运行一次,不想让它留着占内存,就用“立即执行函数”——这也是匿名函数的一种特殊用法。比如页面加载时,需要自动执行一段初始化代码,不用再手动调用:

`javascript

// 这个匿名函数写完就立刻执行,之后再也不能调用

(function() {

console.log("页面正在初始化,请稍等...");

// 这里可以写加载页面数据的代码

})();

`

注意别写错格式:要把匿名函数包在()里,再加()执行,不然浏览器会以为是函数定义,不会自动跑。这种用法就像你煮完一碗面,吃完就把碗洗了,不会留着占地方。

为什么要多用匿名函数?

不是匿名函数比有名函数好,而是它更“灵活”——就像你出门带手机,有时候直接用(匿名),有时候把手机放包里(存进变量),没必要每次都给手机起个名字。它适合用在“临时用一次”“当参数/数据”的场景,让代码更简洁,不会有多余的函数名,也能避免命名冲突。

如果要重复用某个逻辑,比如计算商品总价,那还是要写有名函数calcTotalPrice(),这样可以随时调用,不用重复写代码。所以匿名函数是工具,该用的时候用,该取名字的时候别省。

上一篇 TypeScript rootDir 怎么用