4 ms·
Re: “let” Some might argue that a function which is so long that it needs block scoping, whether for visibility or storage lifetime management, is too long. I
by Roboprog 8y ago
Re: “let”
Some might argue that a function which is so long that it needs block scoping, whether for visibility or storage lifetime management, is too long.
I guess it’s at least “mostly harmless”, though :-)
(“class” arguably sucks in ES2015)
- z3t4 8y agoI like the function scope as it encourages you to create functions. functions are great! Only time it gets confusing is in the for-loop where most people expect a closure. I tell them to just put the innards of the for-loop in a function. Also with function scope you don't have to worry about the blocks, you can declare variables everywhere and they'll be hoisted.
- mst 8y agoBeing able to write: for (let x in list) { callbacks.push(function () { x+3 }); } instead of: for (var x in list) { callbacks.push((function (x) { function () { x + 3 } })(x); } is a huge advantage to me. (yes, I know arrow function notation exists, but given I was explaining "why I love let" it would've been unfair to use it in the "good" example)
- Roboprog 8y agoOh. I guess I don’t use for...in much (at all). I see your point now, though. OTOH: list.forEach( function( x ) { callbacks.push( function () { return x + 3 } ) } I guess I tend to use forEach, or one of the Ramada.js operations, rather than for loops these days. EcmaScript isn’t Scheme, or Smalltalk/Self, or Ruby. But it sucks a lot less than the other language I’m allowed to use at work :-) (I pretend that ES is mostly Ruby)