If I create a simple object like
var a = {foo: 1}; 
Why I can access to its prototype this way ?
a.prototype
I get undefined on the console
If I create a simple object like
var a = {foo: 1}; 
Why I can access to its prototype this way ?
a.prototype
I get undefined on the console
 
    
    You can find the object's prototype this way:
a.__proto__
obj.prototype can be used to set new prototype to the object. 
 
    
    Functions have a prototype property not regular objects. The prototype property points to an object that child objects created with new will be linked to. 
Objects are prototype linked however. However this is not the same thing as the 
prototype property of functions This naming is a bit of confusing. 
For example:
var a = {foo: 1}; 
// the prototype of a
console.log(Object.getPrototypeOf(a))
// the same as __proto__
console.log(a.__proto__ === Object.getPrototypeOf(a))
// the .protoype property:
function Test(){}
// it's just an empty object unless you change it
console.log(Test.prototype)
// instance are prototype linked to this
let instance = new Test()
console.log(instance.__proto__ === Test.prototype)