Creating truely private methods in Javascript causes each object to have its own copy of the function. These copies are not garbage collected until the object itself is destroyed.
Example
var Student = function (name, marks) {
this.name = name || ""; //Public attribute default value is null
this.marks = marks || 300; //Public attribute default value is null
// Private method
var increaseMarks = function () {
this.marks = this.marks + 10;
};
// Public method(added to this)
this.dispalyIncreasedMarks = function() {
increaseMarks();
console.log(this.marks);
};
};
// Create Student class object. creates a copy of privateMethod
var student1 = new Student("Ayush", 294);
// Create Student class object. creates a copy of privateMethod
var student2 = new Student("Anak", 411);