Questo è possibile se sicrea un involucro/oggetto decoratore che rende concatenamento possibile. Ecco come funziona jQuery, ad esempio. Ma è inutile in questo caso.
Ho fatto una possibile implementazione, però.
Ma getItem interromperà la catena (quindi dovrebbe essere sempre utilizzata alla fine).
storage().setItem('names', 'Bill').getItem('names'); // or
storage().setItem('names').addItem('Bill').getItem('names'); // or
storage().key('names').value('Bill').set().get('names');
Attuazione
(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);
Ciò non ha alcun senso. Cosa restituirebbe 'getItem'? – SLaks
getItem dovrebbe essere alla fine della catena, ma a parte questo può essere fatto – galambalazs
Non dovrebbe essere solo 'alert (localStorage.getItem ('nomi'). AddItem ('Bill'))'. –