Я знаю, как разбирать строку JSON и превращать ее в объект JavaScript.
 Вы можете использовать JSON.parse() в современных браузерах (и IE9 +).
Это здорово, но как я могу взять этот объект JavaScript и превратить его в конкретный объект JavaScript (т.е. с определенным прототипом)?
Например, предположим, что у вас есть:
function Foo()
{
   this.a = 3;
   this.b = 2;
   this.test = function() {return this.a*this.b;};
}
var fooObj = new Foo();
alert(fooObj.test() ); //Prints 6
var fooJSON = JSON.parse({"a":4, "b": 3});
//Something to convert fooJSON into a Foo Object
//....... (this is what I am missing)
alert(fooJSON.test() ); //Prints 12
Опять же, мне не интересно, как преобразовать строку JSON в общий объект JavaScript. Я хочу знать, как преобразовать строку JSON в объект "Foo". То есть, у моего объекта теперь должна быть функция "test" и свойства "a" и "b".
UPDATE После некоторых исследований я подумал об этом...
Object.cast = function cast(rawObj, constructor)
{
    var obj = new constructor();
    for(var i in rawObj)
        obj[i] = rawObj[i];
    return obj;
}
var fooJSON = Object.cast({"a":4, "b": 3}, Foo);
Будет ли это работать?
  ОБНОВЛЕНИЕ Май 2017 г.. "Современный" способ сделать это через Object.assign, но эта функция недоступна в браузерах IE 11 или старше.

