在JavaScript中创建真正的私有方法的缺点是什么?

在Javascript中创建真正的私有方法会导致每个对象都有其自己的函数副本。在对象本身被销毁之前,这些副本不会被垃圾回收。

示例

var Student = function (name, marks) {
   this.name = name || ""; //Public attribute default value is null
   this.marks = marks || 300; //Public attribute default value is null
   //私有方法
   var increaseMarks = function () {
      this.marks = this.marks + 10;
   };
   //公共方法(添加到此)
   this.dispalyIncreasedMarks = function() {
      increaseMarks();
      console.log(this.marks);
   };
};
//创建学生类对象。创建一个privateMethod的副本
var student1 = new Student("Ayush", 294);
//创建学生类对象。创建一个privateMethod的副本
var student2 = new Student("Anak", 411);