Function prototype: Difference between revisions

Content added Content deleted
Line 312: Line 312:


=={{header|JavaScript}}==
=={{header|JavaScript}}==
JavaScript functions may also be used to define prototype objects
ES5: JavaScript functions may also be used to define prototype objects
<lang JavaScript>
<lang JavaScript>
// A prototype declaration for a function that does not require arguments
// A prototype declaration for a function that does not require arguments
Line 353: Line 353:
l.length; // 2
l.length; // 2


</lang>

ES6: Class Declarations are used to define prototype objects
<lang JavaScript>
// A prototype declaration for a function that does not require arguments
class List {
push() {
return [].push.apply(this, arguments);
}
pop() {
return [].pop.call(this);
}
}

var l = new List();
l.push(5);
l.length; // 1
l[0]; 5
l.pop(); // 5
l.length; // 0



// A prototype declaration for a function that utilizes varargs
class List {
constructor(...args) {
this.push(...args);
}
push() {
return [].push.apply(this, arguments);
}
pop() {
return [].pop.call(this);
}
}

var l = new List(5, 10, 15);
l.length; // 3
l[0]; 5
l.pop(); // 15
l.length; // 2
</lang>
</lang>