Вы занимаете метод Object.prototype
от Function
выяснить , если значение , которое вы передаете в любой из функций является экземпляром Function
конструктора или Array
конструктор.
Использование toString
непосредственно из прототипа объекта переопределит toString
на Array.prototype и Function.prototype, которые имеют разные типы поведения.
function b(a) {
return "[object Function]" == Object.prototype.toString.call(a)
}
console.log(
Object.prototype.toString.call(b),
b(b)
)