
Calling an Array of Functions in JavaScript - luu
http://zpao.com/posts/calling-an-array-of-functions-in-javascript/
======
serve_yay
Maybe it's just me but this strikes me as a great argument for leaving it like
it is:

    
    
        callbacks.forEach(function(callback) {
          callback();
        });
    

Everybody knows what it does. Simple.

~~~
grimtrigger
I think the author comes to that conclusion, the article is just a thought
experiment

~~~
serve_yay
Sure, I'm just making the point that sometimes when you look at something like
that and think it can be improved, it's worth considering that the cure may
end up being worse than the disease.

~~~
zpao
It is worth considering, but it's often worth finding out what the cure is
before writing it off. You have to make the right tradeoffs (eg, when working
on a tight deadline, it's probably not the right call to go off into the weeds
finding out if you can make 3 lines of code into 1).

------
lrichardson
Obviously, doing this is not super-readable, but it can be fun thought-
experiments or brain-teasers.

There was a post I wrote about doing something similar a little while back [1]

    
    
      [1]: http://tech.pro/blog/2097/clever-way-to-demethodize-native-js-methods

------
nine_k
The article laboriously avoids the words 'applicative functor' :)

A good abstraction does make the life easier time and again:

    
    
        > import Control.Applicative
        > [(+1), (+20), (*10)] <*> [5]
        [6,25,50]
        > _

------
lightblade
Is this better?

> _.invoke(callbacks, 'call')

Short and concise, but needs underscore dependency.

------
nadocrew

        callbacks.forEach(Function.prototype.call.bind(Function.prototype.call));
    

It is just as long as the original and more convoluted, but much more fun.

