Не правильно. Во-первых,
torbasow не прав, {}.prototype —
не SyntaxError. Такая ошибка вызывается из-за того, что интерпритатор ставит после законченной конструкции {} точку с запятой и получается следующее:
{};.prototype
что и выдает такой результат.
Если же написать так:
var o = {}; o.prototype;
то, как уже было замечено, это вернет нам
undefined.
Далее, по поводу присваивания
user = {}.prototype = root
видимо вы не в курсе, что операция присваивания имеет приоритет справа налево, то есть сперва выполняется правый операнд, затем тот, что левее и так далее, пока дело не дойдет до самого левого. Пример:
var3 = 10; var var1 = var2 = (var3 + 1); console.log('1: '+var1); console.log('2: '+var2);
выведет
1: 11
2: 11