Ответ 1
Вообще говоря, объект может быть вызван без функции. На языке, где все является объектом (включая функции), вызываемые объекты не должны опускаться из класса Function.
В JS, похоже, что Callable - это все, что имеет внутренний метод [[Call]] (идентифицированный типом "функции", а не "объект" ). Функция (как используется в слайде) является потомком объекта Function. Я мог ошибаться, но в рамках script вы можете создавать только функции, в то время как реализация ECMAScript может определять Callables, которые не являются функциями.
Если вы попробуете фрагмент кода из слайда с анонимными функциями/функциями и с объявленными функциями, результаты будут одинаковыми.
typeof function() {}; // == 'function'
({}).toString.call(function() {}) // == '[object Function]'
function foo() {}
typeof foo; // == 'function'
({}).toString.call(foo) // == '[object Function]'