JSFiddle - React, Tailwind, and code Playground

JavaScript

(function () {
    function Store() {
        var store = [];

        if (!(this instanceof Store)) {
            return new Store();
        }

        this.add = function (name, price) {
            store.push(new StoreItem(name, price));
            return this;
        };
        
        // new method
        this.getStoreString = function(){
            return store.join('\r\n');  
        };
    }

    function StoreItem(name, price) {
        if (!(this instanceof StoreItem)) {
            return new StoreItem();
        }

        this.Name = name || 'Default item';
        this.Price = price || 0.0;
    }

    Store.prototype.toString = function () {
        // call the new method
        return this.getStoreString();
    };

    StoreItem.prototype.toString = function () {
        return this.Name + ' $' + this.Price;
    };

    window.shop = window.shop || {
        Store: function () {
            return new Store();
        }
    };
}());

var s = shop.Store();
s.add('milk', 2);
s.add('eggs', 3);
alert(s);