Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #16172

Re: silly question on closure

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>

Show all headers | View raw


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


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