6 ms·
the `=>` de-sugars to: var currentUrl = function(_) { return window.location.href; } the underscore is used so they don't have to type `() =>`
by tjallingt 9y ago
the `=>` de-sugars to:
var currentUrl = function(_) {
return window.location.href;
}
the underscore is used so they don't have to type `() =>` instead
- azorba1987 9y agoSome snippets, like this, read a lot like codegolf functions.
- thephyber 9y agoCode Golf is about using the most terse syntax (and frankly, showing off while doing it). This was a new syntax added to the language spec to reduce the amount of boilerplate required for common tasks. Also, the "fat arrow function" handles "this" different inside of the function, so it can serve a slightly different function and in many event-handling cases it can be even more terse than traditional JS functions.
- danso 9y agoAhhh. I think I was confused why referring to `window.location.href` would be needed to be put into a function, and then called as `currentUrl()`, rather than having currentUrl be a string value. Is this best practice? I mean, is there some `window.location.href` isn't a global object?
- wereHamster 9y agoBecause the value may change. If 'currentUrl' was a constant (eg. `const currentUrl = window.location.href`) it would capture the href at the start of the application, even though it might change later on (history API, pushstate etc).
- cag_ii 9y agoWhy wouldn't you just reference `window.location.href` when needed, instead of wrapping it up in `currentUrl`?
- danso 9y agoYeah that was my question. I was racking my head thinking of when this window.location.href wouldn't refer to what a program would want given how it almost acts like a global function in some ways (e.g. `window.location.href="http://example.com"` http://example.com"` can be used to change the page). Maybe currentUrl is supposed to be a wrapper just incase window.location.href changes (which seems highly unlikely but again, I'm out of the loop with modern JS).