Prototype helps you, to have kind of inheritance (prototypal inheritance).
you can add properties to your objects manually, or borrow the property from its prototype. Let's take a look to some examples:
var obj = new myClass();
obj.p2 = 'p - child';
console.log(obj.p2); // p - child
var obj2 = Object.assign(obj.__proto__); // will borrow the value from the obj prototype
console.log(obj.p2); // p - child
Now take a look to what happen with myClass prototype:
var obj3 = Object.assign(myClass.prototype); //will borrow the value from the myClass prototype
console.log(obj3.p2); // p - parent
And here an example with not existing properties:
var obj4 = new myClass();
var obj5 = Object.assign(obj4.__proto__);
obj4.p3 = 'P3 - value';
console.log(obj4.p3); // P3 - value
console.log(obj5.p3); // undefined
Note: __proto__ is for objects {}, prototype is for functions.
Hope this helps to clarify a little bit.
p2property different values. You'll immediately spot the difference.