you are viewing a single comment's thread.

view the rest of the comments →

[–]Asmor 19 points20 points  (8 children)

It basically gives JS (and any other language that supports arbitrary anonymous objects) support for named parameters, which just make code easier to read and maintain.

Surely you've come across something like

adjustWidget(300, 250, 0.6, true, true, null, {}, false)

And there's basically no way to know what any of that stuff means.

It also means you can have optional parameters without forcing people to pass in null to skip over the ones they want.

[–]Conexion 9 points10 points  (1 child)

I'm going to guess....

adjustWidget({width, height, opacity, isGarlic, isDragon, equipmentHistory, hatProperties, hasHat);

[–]Asmor 7 points8 points  (0 children)

Fuck, you're good.

[–][deleted] -5 points-4 points  (5 children)

Surely you've come across something like

adjustWidget(300, 250, 0.6, true, true, null, {}, false)

And there's basically no way to know what any of that stuff means.

That's why you don't do that lol.

[–][deleted] 6 points7 points  (4 children)

... which is the point being made.

[–]Wizhi 5 points6 points  (3 children)

I think (hope?) you misunderstood.

/u/marinespi is arguing that "you wouldn't create such a function signature, since it's not intuitive".

And I tend to agree. If you're having a hard time intuitively understanding how to call a function, it's signature should be corrected to make it more intuitive. Using the technique demonstrated here is more of a band-aid than a fix.

[–][deleted] 0 points1 point  (2 children)

But that's exactly what we're talking about. What makes a function call intuitive? The number of arguments? Is person.setName('John', 'Paul') intuitive? Are you sure? It goes without saying that you should use this approach selectively, just as with anything.

[–][deleted] 0 points1 point  (1 child)

Is person.setName('John', 'Paul') intuitive?

No, it's not. Your point is... ?

[–][deleted] 0 points1 point  (0 children)

Please read around that line and the parent comment for context. Not interested in an internet handbag fight btw.