While its true that functions are objects, the process of declaring one does not give it any custom keys. There are however some keys that it gets automatically, and you can also add extras after the fact if you want
Here's an example of creating a function, and then accessing some of the properties it gets automatically:
function sample(a) {
console.log('hello', a);
}
console.log(sample.name); // 'sample', since that's what i called it
console.log(sample.length); // 1, because i specified one argument (a)
console.log(sample.toString); // all functions inherit a number of methods, and toString is one of them
console.log(sample.toString()); // now i'm calling to string
If you'd like to see more examples of which keys get created automatically for functions, i'd recommend looking at this page. Anything that starts with Function.prototype or Object.prototype is inherited by all functions.
As i mentioned, you can add any keys you want onto a function object once you've created it. For example:
function sample(a) {
console.log('hello', a);
}
sample.metadata = "This function was created by nick";
sample.golfHandicap = 42;
console.log(sample.metadata);
console.log(sample.golfHandicap);