Revealing Module Pattern

Syngenio

by molily

JavaScript

var store = (function () {
    var limit = 3;
    var internalStore = [];
    var cleanup = function () {
        if (internalStore.length > 3) {
            internalStore = internalStore.slice(-3);
        }
    };
    var add = function (element) {
        internalStore.push(element);
        cleanup();
    };
    var get = function (index) {
        if (typeof index != 'number') {
            return undefined;
        }
        return internalStore[index];
    };
    var length = function () {
        return internalStore.length;
    };
    return { add: add, get: get, length: length };
})();

store.add(1);
store.add(2);
store.add(3);
store.add(4);
store.add(5);

alert(store.get(0)); // 3
alert(store.length()); // 3