Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Event handler bind to an anonymous function vs named function

I know .on() exists with jQuery and .bind() should not be used in the future, considering that I have a version of jQuery greater than or equal to 1.7.

What I want to know is this: are there are any differences between attaching an anonymous function or named function to an event handler using .bind()?

Example:

// Anonymous function
$(".warning").bind("click", function(){
   alert("Hello");
});

// Named function
$(".warning").bind("click", foo);

function foo(){
   alert("Hello");
}

Imagine that I have 100 div's with the class warning in my page. The function .bind() will attach a new function to every handler with an anonymous function but will it be exactly the same with a named function in the very internal of JavaScript and jQuery?

Thank you.

like image 363
Samuel Avatar asked Aug 21 '12 14:08

Samuel


1 Answers

There won't be any noticeable performance difference.

One main difference is that with a named function you can also selectively unbind functions and not just all functions associated with an event type.

Of course, this can also help you avoid code duplication.

like image 69
Ohad Avatar answered Oct 17 '22 01:10

Ohad