JSFiddle - React, Tailwind, and code Playground

by parksd

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

JavaScript

(function () {
		// 기본 객체(Computer)를 선언한다.
    function Computer(name) {
        this.name = name;
        this.price = 0;
        this.parts = [];
    }
    
    // 기본 객체의 prototype에 출력을 위한 몇가지 기능을 추가한다.
    Computer.prototype = {
        showPrice: function () {
            console.log(this.name + " costs $" + this.price);
        },
        showParts: function () {
            var partString = "- Parts information\n",
                length = this.parts.length,
                i;
            for (i = 0 ; i < length ; i++) {
                partString += this.parts[i].name + ": $" + this.parts[i].price + "\n";
            }
            console.log(partString + "\n- Total: $" + this.price);
        },
        decorate: function (part) {
            this.price += part.price;
            this.parts.push(part);
        }
    };
    function ComputerDecorator() {
        this.decorateParts = {};
    }
    ComputerDecorator.prototype.decorateComputer = function (computer, partName) {
        if (this.decorateParts.hasOwnProperty(partName)) {
            computer.decorate(this.decorateParts[partName]);
            console.log("Decorating " + computer.name + " with " + partName);
        }
        return computer;
    };
    ComputerDecorator.prototype.addDecoratePart = function (partName, price) {
        this.decorateParts[partName] = {
            name: partName,
            price: price
        };
    };
    var computerDecorator = new ComputerDecorator();
    computerDecorator.addDecoratePart("CPU", 200);
    computerDecorator.addDecoratePart("8GB memory", 100);
    computerDecorator.addDecoratePart("4GB memory", 50);
    console.log("1. Home computer");
    var homeComputer = new Computer("Home computer");
    homeComputer = computerDecorator.decorateComputer(homeComputer, "CPU");
    homeComputer = computerDecorator.decorateComputer(homeComputer, "4GB memory");
    homeComputer.showPrice();
    homeComputer.showParts();
    console.log("\n2. Work computer");
   ...