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