Why the third expression is false? Second and third aren't the same?
'use strict'
function func () {}
console.log(Object.getPrototypeOf(func) === Function.prototype) // true
console.log(Object.getPrototypeOf(Object.getPrototypeOf(func)) === Object.prototype) // true
console.log(Object.getPrototypeOf(Function) === Object.prototype) // false
All functions return a prototype. Prototypes are the mechanism by which JavaScript objects inherit features from one another, not an instance of the prototype of that object. so in that third example it returns that. To clarity let's just log those: