Classes. The most important difference between class- and prototype-based inheritance is that a class defines a type which can be instantiated at runtime, whereas a prototype is itself an object instance.
To answer your question simply, there is no real difference. Straight from the MDN web docs definition: JavaScript classes, introduced in ECMAScript 2015, are primarily syntactical sugar over JavaScript's existing prototype-based inheritance.
One key distinction between functions and classes was highlighted in this talk which suggests that a function is a behavior that can carry data while, inversely, a class is data that can carry behavior.
prototype is a property of a Function object. It is the prototype of objects constructed by that function. __proto__ is an internal property of an object, pointing to its prototype.
I know this has been answered before, but I am still confused (which is not entirely my fault as I notice the answers can be radically different from each other).
I come from a Java background so if you can define anything as static, private, public, etc like then that should help me understand.
Basically I want to make a completely custom class, but am unsure about prototype/etc. Example (using one function type):
function myClass()
{
var a;
var b;
var helper = function()
{
this.a += this.b;
}
var helper2 = function(a,b)
{
return(a + b);
}
var getA = function()
{
return(this.a);
{
var staticMethodThatNeedsToBePublic = function()
{}
}
var myInstance = new myClass();
myClass.prototype.example1 = function(){};
myClass.example2 = function(){};
So how should this actually have been written? (I tried to include all the basic function types, but if I missed any feel free to add then) [note: I don't particularly care about this specific example, I just thought it might be helpful to the conversation but feel free to just answer my general question]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With