Пытаюсь разбираться с underscore.js и там есть подобный фрагмент кода, суть которого заключается в определении "корневого" объекта, куда в дальнейшем будут добавляться разные методы библиотеки.
var root = typeof self == 'object' && self.self === self && self ||
typeof global == 'object' && global.global === global && global ||
this;
У меня возникла небольшая проблема в целом с прочтением этого участка кода.
Как его правильно воспринимать?
Понимаю, что переменной root будет присвоен первый 'true' фрагмент из трёх возможных вариантов, но что при каждом из них происходит, непонятно.