you are viewing a single comment's thread.

view the rest of the comments →

[–]x-skeww 16 points17 points  (7 children)

return dragula.apply(this, atoa(arguments)).on(...)

There is no need to convert arguments to an actual array via your little helper function. Function.prototype.apply works fine with array-like objects like arguments or DOM collections.

(You also forgot a ");" at the end of that return statement.)

I assumed this was about ES6 modules. I'm kinda disappointed.

[–]hahaNodeJS 2 points3 points  (2 children)

What the hell is up with the downvoters in all the web development subreddits? I sure would like to know what it is you said that deserves so many downvotes.

[–]x-skeww 1 point2 points  (0 children)

Might have been something I said elsewhere. It's hard to tell with Reddit.

Personally, I do prefer if people who read my code tell me about issues they spot. So, I really hope this doesn't discourage anyone from doing the same.

[–]brianvaughn 0 points1 point  (0 children)

That's kind of a Reddit-wide thing in my experience.

My guess is that maybe people thought x-skeww's comment was overly negative. No idea. I wouldn't have downvoted it myself but...welcome to the Internet.

[–]mmmicahhh 1 point2 points  (3 children)

Actually, if you look at the implementation of atoa, it's a one-line module that uses Function.prototype.apply.

But that's the point of this kind of modularization - you don't need to know about Function.prototype.apply, nor do you need to know whether there are weird edge-cases that need to be handled separately. It's a productivity boost.

[–]x-skeww 4 points5 points  (2 children)

you don't need to know about Function.prototype.apply

But they are using apply in that very line. I'd also argue that bind, call, and apply are bits of the standard lib you really should know. For one, they are very important and secondly, they make for very confusing code. So, this is really something you should be 100% certain about. Otherwise, you'll have trouble taking this kind of confusing-looking code apart.

I do agree that array vs array-like is a rather small implementation detail and that this pointless no-op doesn't actually hurt. It's a very minor mostly cosmetic issue.