On Thu, Jan 13, 2011 at 9:37 AM, Arlo <arlo.carr...@gmail.com> wrote:

> Here is my scenario:
> 1.) I know a handful of basic methods that I need to implement right
> now.
> 2.) I do not know if functionality in these methods will expand in the
> future
>
> Example Method:
> A.) function drawPolygon( points, polyOptions ) { ... }
> B.) function drawPolygon( options ) { ... }
>

Giving too many options to developers can be quite costly in the long-run in
terms of testing and other boilerplate burdens. I prefer the args Object
approach because then you can make a consistent API for all your methods, as
well as an easy checker function that will validate all your input against
expected types. If you give the developers a consistent API and you don't
alter it from method to method, I don't think anyone will complain that you
don't expose all arguments.


> I feel that with option B I can expand functionality a lot easier than
> with option A.  Does anyone have advice or common pitfalls when taking
> approach B?  I appreciate any input.
>

You're right. Again, while jQuery does this various ways, I think that
passing an object literal into a function is much cleaner API than many
arguments in the function signature.

-Anatoly

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/jsmentors@jsmentors.com/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/jsmentors@googlegroups.com/

To unsubscribe from this group, send email to
jsmentors+unsubscr...@googlegroups.com

Reply via email to