JSFiddle - React, Tailwind, and code Playground

JavaScript

(function () {
    var testobj = { a: 10, b : 20 };

    console.time('test1');
    var create1 = function() {
        var keys = [];
        for (var k in testobj)
            if (testobj.hasOwnProperty(k)) {
                keys.push(k);
            }
        return function () {
            var key,
                obj = {};
            
            for (var i = keys.length; i--;) {
                key = keys[i];
                obj[key] = testobj[key];
            }
            
            return obj;
        };
    }();
    
    for (var i = 0; i < 100000; i++)
        create1();
    console.timeEnd('test1');
    
    console.time('test2');
    var create2 = function() {
        var code = [];
        code.push("return {");
        for (var k in testobj)
            if (testobj.hasOwnProperty(k))
                code.push(k, ": testobj.", k, ", ");
        code.push("}");
        code = code.join("");
        return new Function("testobj", code).bind(null, testobj);
    }();
    
    for (var i = 0; i < 100000; i++)
        create2();
    console.timeEnd('test2');
})();