In Javascript every function is an object.
function a() {
    this.x = function() { console.log("x"); }
}
Here "a" is a function, which is an object. right?
var b = Object.create(a);
b.x(); //does not work!!
The above code would work if we wrote -
var b = Object.create(new a())
So does that mean only the instance of a function is an object? not the function?





thisis not that object. It is the context set by the caller.avariable does not havexproperty :-) so and inheritedbalso does not have itthisnot a reference toa, in the code that didn't work you never actually call the function so the code inside it hasn't been run.