Esto es posible sicrear un/objeto decorador envoltorio que hace posible encadenar. Así es como funciona jQuery, por ejemplo. Pero es inútil en este caso.
Aunque hice una implementación posible.
Pero getItem romperá la cadena (por lo que siempre se debe usar al final).
storage().setItem('names', 'Bill').getItem('names'); // or
storage().setItem('names').addItem('Bill').getItem('names'); // or
storage().key('names').value('Bill').set().get('names');
Implementación
(function(window, undefined) {
var storage = function(key, value) {
return new storage.init(key, value);
};
storage.init = function(key, value) {
this._key = key;
this._value = value;
};
storage.init.prototype = {
key: function(key) {
this._key = key;
return this;
},
value: function(value) {
this._value = value;
return this;
},
get: function(key) {
key = isset(key) || this._key;
return localStorage.getItem(key);
},
set: function(key, value) {
this._key = key = isset(key) || this._key;
this._value = value = isset(value) || this._value;
if (key && value) {
localStorage.setItem(key, value);
}
return this;
},
addItem: function(value) {
this._value = isset(value) || this._value;
if (this._key && value !== undefined) {
localStorage.setItem(this._key, value);
}
return this;
},
// aliases...
getItem: function(key) {
return this.get(key);
},
setItem: function(key, value ) {
return this.set(key, value);
}
};
function isset(value) {
return value !== undefined ? value : false;
}
window.storage = storage;
})(window);
Eso no tiene ningún sentido. ¿Qué devolvería 'getItem'? – SLaks
getItem debe estar al final de la cadena, pero aparte de eso se puede hacer – galambalazs
¿No debería ser 'alerta (localStorage.getItem ('nombres'). AddItem ('Bill'))'. –