Object literals are JavaScript objects that cannot be instantiated with the new
operator. So with an object literal like this:
var myObject = { property: value };
you cannot use something like this:
var instance = new myObject();
because myObject
is not a constructor. Period. The important thing to note here is that object literals can actually store only simple values, not complex ones. So if you write something like this:
var myObject = { url: location.href };
you get undefined
. If you really want to store complex values within an object literal, you should use methods and not properties, like this:
var myObject = { url: function() { var href = location.href; return href; } };
That's all.