Seems like it's possible for this code could provide unexpected results for `self._store`. For example, if url ends with a ?. Also, if all search parameters are integers, then `self._store` would be an array.

I think it would be safest to initialize it to an empty object in all cases:

```
        self._store = {};
        
        if (searchString) {
            urlParams = searchString.split("&");
            
            urlParams.forEach(function (param) {
                p = param.split("=");
                self._store[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
            });
        }
```