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');
})();