7 comments

[ 4.7 ms ] story [ 24.8 ms ] thread
JavaScript used to be a nice prototype based programming language...

Anyway, I'm more interested in how this site is being published. I'm on iOS and in vertical format words are cutoff with dashes properly for that format and when I switch to landscape other words are cut off that fit that format.

Is this some simple css attribute I missed completely?

one of my favorite JS bloggers, love his deep dives
There is a bit more nuance in using `this` in a named function that wasn't covered. Named functions defined in classes are scoped outside of the class, meaning they are not bound to the class. To use `this` in your named function, you usually have to bind it in the constructor using `this.functionName.bind(this)`

Arrow functions defined within a class are scoped and bound to the class automatically. Hence, arrow functions do not require calling the .bind in constructor, and you can happily use `this` inside arrow functions.

I appreciate the article but I was waiting for Monads to appear.
> Somewhat confusingly, we can also give our function expression a name. One that’s separate from the variable name [...] This throws an error. If we can’t use that name, then what’s the point of it? Well, takeyWhiley will show up if we throw an error in our code.

There is another reason: If you give a name to a function expression, the function can directly recurse on itself without the use of combinators. For example:

  const factorial = function fact(n) {
      if (n == 0)
          return 1;
      else
          return n * fact(n - 1);
  };
Named functions give you a clear function name which helps in debugging and recursion. For simpler syntax and capturing the surrounding context, arrow functions are handy. You might want to explore MailsAI for organizing your JavaScript code snippets efficiently, it made my workflow smoother.