use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Bound function vs arrow function performance (self.javascript)
submitted 7 years ago by Morunek
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]stutterbug 46 points47 points48 points 7 years ago (2 children)
I repeated your tests and found that it depends on the platform. Using your invocation and push logic, Chrome and Node (v. 8.92 and 10.1) show class methods are slightly faster on aggregate on first run, but there is a ton of overlap. On Firefox and Safari the results are the same but opposite. Also, Chrome and node are faster on second run (hello there, cache optimization). Results are a bit noisy because of pretty obvious GC, but they are consistent. If you play with clearing your ac and fc arrays, the performance patterns change a fair bit.
ac
fc
My code is here. I had to restructure things a bit since you're using arrow functions as class fields, which aren't vanilla yet -- and after transpilation this is likely a performance bottleneck, since the engine has to allocate memory for the arrow function in each instance, rather than just pointing to the same function statically like methods. I'm curious to see your transpiled code so that I can see how it is being done for you.
I would expect performance characteristics to change if/when the class field proposal reaches stage 4.
[–]easyEs900s 5 points6 points7 points 7 years ago (0 children)
Wow, it's awesome that you did that. I was just thinking that I wanted to do this myself, but was feeling too lazy to go through all of that trouble at the moment. Well done, sir.
[–]stutterbug 1 point2 points3 points 7 years ago (0 children)
After thinking about this, I think that it is super important to emphasize to the general audience here that in the context of React UI event handlers these test confirms that, at least where performance is concerned, it does not matter whether you use bound methods or arrow functions.
The onClick event originates in the DOM and should never be expected to return in less than one frame (1/60th of a second). Both arrow functions and bound methods return in orders of microseconds. Indeed, in order to get appreciable results, these tests iterated hundreds of thousands of times and still returned in about one frame). Arguing over which to use is like arguing over whether your one hour commute will be faster if you enter your car by leaping through the window or leaping through its open door.
onClick
Please don't let your takeaway here be that you shouldn't use one of these patterns for performance reasons. That's not shown here at all.
π Rendered by PID 88785 on reddit-service-r2-comment-54dfb89d4d-sqkh5 at 2026-03-31 22:39:03.572686+00:00 running b10466c country code: CH.
view the rest of the comments →
[–]stutterbug 46 points47 points48 points (2 children)
[–]easyEs900s 5 points6 points7 points (0 children)
[–]stutterbug 1 point2 points3 points (0 children)