Functions are objects, it’s very important to keep that in mind.
Functions are objects so they can have properties. And they they have methods.
They can be copied, deleted, passed as arguments to other functions, returned by other functions.
They also provide scope.
And they have special feature that sets them apart from the other objects – they are invokable, they can be called.