Comment

Comment by cmwelsh

Avoiding nested anonymous functions is good for more reasons than listed in the article. The article lists closures holding references to the closed-over variables as being a source of wasted memory. Another point is the fact that anonymous variables require memory allocation each time they are created:

    // Uses more memory:
    
    Foo.prototype.someFunction = function () {
      ;[2, 5, 9].forEach(function (element, index, array) {
          console.log("a[" + index + "] = " + element)
      })
    }
The function will be created every time the outer forEach loop is called.

    // Uses less memory:
    
    Foo.prototype.logArrayElements = function (element, index, array) {
      console.log("a[" + index + "] = " + element)
    }
    Foo.prototype.someFunction = function () {
      ;[2, 5, 9].forEach(this.logArrayElements)
    }
Save your created functions for later to save memory.
parent cmwelsh 14 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton