When should object literals be used in javascript, sometimes I get confused I am trying to apply oop concepts and pattern to the language. I am trying to not just use procedural programming concepts because I know the language has amazing capabilities.
-
1JS literals are 'value' types. They are an object, not a function, and have no prototype. Classic OOP patterns in JS are simply bastardizations (meant in the kindest of ways) of prototypal inheritance, this may be where your confusion lies. Of course, literals may be used to augment functions or be assigned to prototypes, but in general if you treat JS literals as values or parameters, not as types/classes and you will be fine. – Sky Sanders Mar 23 '10 at 16:16
4 Answers
Object literals are most commonly used as:
- a type of associative array; and
- a way of passing many arguments to a function.
The second is particularly important and common in libraries like jQuery.
That's how they're commonly used. As for when you should use them, that's a difficult question to answer because it's a bit like asking when should arrays be used. Object literals are a tool. They're a means to an end not an end in itself.
The subtext of your post suggests you're trying to imprint some non-Javascript concepts onto Javascript. I see this a lot (particularly where people try and make everything OO in PHP as the most egregious example). Javascript has its own strengths and weaknesses. Play to those. Don't try to make it something it isn't.

- 616,129
- 168
- 910
- 942
One common mistake is that people confuse OO with Classical language design. You really don't want to be thinking in terms of classes when it comes to javascript, you want to be thinking in terms of functions, duck typing, and prototypes.

- 41,224
- 16
- 95
- 126
This may seem obvious but Javascript object literals are also commonly used for data exchange with other systems. JSON after all is just a subset of Javascript object literal syntax.

- 12,287
- 13
- 80
- 147