Javascript get item in object code
Another downfall of your this.item() function is that if item isn't in this.obj, this._getLibraryObj() will be called every time.

Try

this.item = function(item) {
    if (this.obj) {
        return this.obj[item] || null;
    } else {
        this.obj = this._getLibraryObj();
        return this.item(item);
    }
};


Or if you want it even more minimal:

this.item = function(item) {
    if (this.obj) 
        return this.obj[item] || null;

    this.obj = this._getLibraryObj();
    return this.item(item);
};


If you switch up the statements a little bit you get the most readable IMHO:

this.item = function(item) {
    if (!this.obj) 
        this.obj = this._getLibraryObj();

    return this.obj[item] || null;
};


One final way to do it would be to do:

this.item = function(item) {
    this.obj = this.obj || this._getLibraryObj();

    return this.obj[item] || null;
};


EDIT:

In light of your comment about needing to re-call getLibraryObj

this.item = function(item) {
    if (!(this.obj &amp;&amp; item in this.obj))
        this.obj = this._getLibraryObj();

    return this.obj[item] || null;
};


or:

this.item = function(item) {
    this.obj = this.obj &amp;&amp; item in this.obj ? this.obj : this._getLibraryObj();

    return this.obj[item] || null;
};


or a one-liner:

this.item = function(item) {
    return (this.obj = (this.obj &amp;&amp; item in this.obj ? this.obj : this._getLibraryObj()))[item] || null;
};