Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #16172
| From | Stefan Weiss <krewecherl@gmail.com> |
|---|---|
| Newsgroups | comp.lang.javascript |
| Subject | Re: silly question on closure |
| Date | 2012-09-27 05:04 +0200 |
| Organization | albasani.net |
| Message-ID | <k40fod$k2d$1@news.albasani.net> (permalink) |
| References | <a9704993-d83a-4392-8a65-82755e9ba320@u15g2000yql.googlegroups.com> <k3kocg$8ok$1@news.albasani.net> <7227299.QoKgMUOf8L@PointedEars.de> |
On 2012-09-24 01:10, Thomas 'PointedEars' Lahn wrote: > Stefan Weiss wrote: >> On 2012-09-22 14:04, justaguy wrote: >>> The closure takes so many lines while the function has only 2 lines to >>> get the same thing done. So, the question is, why do we use closure? >> >> You don't, just like you don't actually use "Hello, world" in production >> code. This was obviously just an example for how closures work. If this >> was code intended for actual use, your "just a function" variant would >> be better suited (provided it only returned the value, like in the >> "closure" example). > > You are mistaken as you are overlooking that creating that Array instance > and populating it with elements requires resources – memory and runtime. > Since we have only automated garbage collection, and the function may be > called a number of times, it is better to use a closure here, so that the > object would only be created, and the array only populated, once. I would say that depends on the use case. I have no doubt that closures can offer performance benefits even with a simple 4-element array like this, but unless you're running the function a million times in a tight loop, the difference will be hardly noticable. There's a often a tradeoff between legibility and performance. Introducing temporary variables, helper functions, layers of indirection, etc, can all hurt performance, but we still do it because it helps us keep our code clean, understandable, and maintainable. In the vast majority of cases, JS performance is not a problem (anymore). In this particular case, the goal was "understanding closures". It's a fair assumption to make that the code was not running in a tight loop, and that the OP was not overly troubled by the performance of his script. You're writing a general purpose library, the OP is learning JS. Your goals are different. Recommending the closure style whenever possible, regardless of circumstances, smacks of premature optimization. - stefan
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
silly question on closure justaguy <lichunshen84@gmail.com> - 2012-09-22 05:04 -0700
Re: silly question on closure Stefan Weiss <krewecherl@gmail.com> - 2012-09-22 18:18 +0200
Re: silly question on closure justaguy <lichunshen84@gmail.com> - 2012-09-22 18:41 -0700
Re: silly question on closure Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-24 01:10 +0200
Closures (was: silly question on closure) Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-24 13:14 +0200
Re: silly question on closure Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 05:04 +0200
Re: silly question on closure Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-27 20:50 +0200
Re: silly question on closure Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 21:29 +0200
Re: silly question on closure "Tom de Neef" <tdeneef@qolor.nl> - 2012-09-22 20:00 +0200
Re: silly question on closure justaguy <lichunshen84@gmail.com> - 2012-09-22 18:42 -0700
Re: silly question on closure justaguy <lichunshen84@gmail.com> - 2012-09-23 07:31 -0700
Re: silly question on closure Stefan Weiss <krewecherl@gmail.com> - 2012-09-23 18:49 +0200
Re: silly question on closure justaguy <lichunshen84@gmail.com> - 2012-09-23 13:33 -0700
Re: silly question on closure justaguy <lichunshen84@gmail.com> - 2012-09-23 13:38 -0700
Re: silly question on closure Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-24 20:49 +0200
Re: silly question on closure Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-24 01:14 +0200
Re: silly question on closure dann90038@gmail.com - 2012-09-23 15:37 -0700
csiph-web