Спасибо за ответ.
Если быть более точным, то записи могут быть разные, например как здесь
developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice
Выражение навроде, {}.prototype, я написал обобщенно, т.е. это может быть к примеру Function.prototype.call
хотя вопрос возник после попытки создать прототип таким способом
function root(){}
root.prototype = { root :"свойство root" }
function user() {}
user = {}.prototype = root;
var u = new user();
При явном создании функций-конструкторов роль prototype мне кажется понятно, т.е. prototype является ссылкой на свойства родителя. А роль при использовании глобальных, и/или предопределенных объектов в мне не понятна
Учитывая, что консоль вернула мне
{}.prototype — SyntaxError
Object.prototype — Object {}
[].prototype — undefined
Array.prototype — []
я так понял в моем коде {}.prototype роли как таковой не играет, т.е. я присвоил root сразу и user и {}.prototype, но учитывая, что {}.prototype синтаксическая ошибка, то вызвать я его не могу. С другой стороны не ясно, почему сама запись «user = {}.prototype = root», ошибки не вызвала?
Буду признателен за пояснение, или более развернутую информацию, где описывается использование подобных синтаксисов