Почему эти логические операторы возвращают объект, а не логическое?
var _ = (obj.fn && obj.fn() ) || obj._ || ( obj._ = {} );
var _ = obj && obj._;
Я хочу понять, почему он возвращает результат obj.fn() (если он определен) OR obj._, но не boolean result.