Call( { methodA: function() { this.id = this.createUUID(); }, valueOf: function() { return this.id; }, toString: function() { return this.id; } }); //Simple inheritance model with correct constructor function Test() {} function Test2() { Test.call(this); } Test2.prototype = Object.create(Test.prototype, {constructor: {value: Test2}});