javascript中的匿名方法有哪些优点和缺点

what are the advantages and disadvantages of anonymous methods in javascript?

本文关键字:缺点 方法 javascript      更新时间:2023-09-26

在javascript中,有很多不同的方法可以为按钮单击事件等事件设置方法。

例如,假设您检索了一个输入元素"按钮"

function MyForm(){
   //anonymous method
   button.click = function(){ //work };

   //private method
   var handleClick = function () { // work };
   button.click = handleClick;
   //public method
   button.click = outerClickHandle;

}
//public
function outerClickHandle(){
    // work
}
//prototype
MyForm.prototype.outerClickProto(){
   //work
}

当然,还有一些更明显的答案,比如在需要时进行封装。对于原型,你不必每次都重新创建该函数,这对性能有好处,但对于匿名方法,除了是一种很好的方式或脚本编写流程之外,什么是好的和坏的?

我发现的主要优势是,因为它是内联声明的,所以匿名函数可以访问范围内的所有当前局部变量,这在某些情况下可以极大地简化代码。一个经典的例子是setTimeout(),您希望它使用上面范围中定义的变量进行操作。

当然,匿名函数也不会干扰您所在的任何命名空间(全局、函数内的本地等),因为它不需要名称。

将匿名函数与addEventListener(type,fn)事件处理程序一起使用的缺点是,您不能仅删除该事件侦听器,因为您没有该函数的句柄。

匿名函数的另一个缺点是,每次使用它的代码运行时都会创建一个新函数,在某些情况下,这根本没有什么区别,但在其他情况下,出于性能原因(例如,如果在循环中做事),可能需要考虑