Edit in JSFiddle

function Foo() {
}

Foo.prototype.betterSpawnClone = function (){
    //create a copy of the current prototype.
    var protoCopy = Foo.prototype;
    //dynamically assign the prototype.
    Foo.prototype = this;
    //create the clone.
    var clone = new Foo();
    //reset the prototype back to normal.
    Foo.prototype = protoCopy;
    //return our clone.
    return clone;
};

var foo = new Foo();
foo.bar = 'test';
var clone = foo.betterSpawnClone();
document.getElementById('output').innerText += clone.bar;
<div id="output"/>