Implementation of a unique collection
This mostly seems like a layer of sugar coating that just adds overhead and doesn't add any improved functionality over what a javascript object already has.  The only new functionality I see is keeping track of a length, but this is a lot of extra overhead just for that.  The length could be calculated at any time on a plain javascript object.

Here are the analogs to your methods:

var collection = {};

addItem:
    collection[key] = value;

removeItem: 
    delete collection[key]

clear:
    collection = {};

exists:
    if (key in collection)

getItems:
    collection.keys()

getLength:
    collection.keys().length


So, all you're getting out of your implementation is a slightly more efficient length and every other operation is less efficient than just using the native code way of doing it.  Is this collection really useful?

There are some older browsers that don't offer the .keys() method, but there's a pretty simple shim that implements it if not available.

In addition, your implementation loses functionality that a plain javascript object has.  For example, you can't pass your collection to any function that expects a javascript object with the keys and values on it because those are hidden inside, they aren't actually properties of the collection object itself.  Then further, you can't do custom iteration of the keys and values without first creating an array of all the keys because you've hidden the natural ability to iterate the keys of a javascript object.