JSFiddle - React, Tailwind, and code Playground

by Douglas Ludlow

HTML

<script src="//code.jquery.com/qunit/qunit-1.14.0.js"></script>
<link rel="stylesheet" href="//code.jquery.com/qunit/qunit-1.14.0.css">
<div id="qunit"></div>
<div id="qunit-fixture"></div>

JavaScript

function Object1(param1, param2) {
    return {
        param1: param1,
        param2: param2,
        function1: function1,
        function2: function2
    };

    function function1() {
        return this.param1;
    }

    function function2() {
        return this.param2;
    }
}

function Object2(param1, param2) {
    var self = this;
    this.param1 = param1;
    this.param2 = param2;
    this.function1 = function1;
    this.function2 = function2

    function function1() {
        return self.param1;
    }

    function function2() {
        return self.param2;
    }
}

var param1 = 'Hello',
    param2 = 'World',
    param3 = 'Wesley',
    o1 = new Object1(param1, param2),
    o2 = new Object2(param1, param2);

QUnit.test('Object1 test', function (assert) {
    assert.ok(o1.param1 == param1, 'o1.param1 == param1');
    assert.ok(o1.param2 == param2, 'o1.param2 == param2');
    assert.ok(o1.function1() == param1, 'o1.function1() == param1');
    assert.ok(o1.function2() == param2, 'o1.function2() == param2');
});

QUnit.test('Object2 test', function (assert) {
    assert.ok(o2.param1 == param1, 'o1.param1 == param1');
    assert.ok(o2.param2 == param2, 'o1.param2 == param2');
    assert.ok(o2.function1() == param1, 'o1.function1() == param1');
    assert.ok(o2.function2() == param2, 'o1.function2() == param2');
});

QUnit.test('Object1 test2', function (assert) {
    o1.param2 = param3;
    assert.ok(o1.param2 == param3, 'o1.param2 == param3');
    assert.ok(o1.function2() == param3, 'o1.function2() == param3');
});

QUnit.test('Object2 test2', function (assert) {
    o2.param2 = param3;
    assert.ok(o2.param2 == param3, 'o2.param2 === param3');
    assert.ok(o2.function2() == param3, 'o2.function2() == param3');
});