Всегда возвращается true, потому что bar не равен нулю.если выражение в операторе if не является логическим выражением (например, if (x <7)), тогда выполняется проверка на нулевое значение.Если он равен null, он возвращает false, в противном случае - true. </p>
В вашем примере вы определили bar как функцию {возвращает n;}, поэтому ваш оператор if оценивается как true.
Если bar возвращает bool (true или false), вам нужно вызвать функцию и получить результат, а не передавать ссылку на функцию - это делается с помощью скобок:
var exampleA = bar(false); // executes function bar and returns the result (false) in exampleA
var exampleB = bar; // stores a reference to the function bar in variable exampleB