我应该将类方法移动到原型吗?

Vil*_*ler 3 javascript performance prototype

我有课

function Foo(a) {
  this.a = a;
  this.bar = function () {
    console.log(this.a);
  };
  this.buz = function () {
    this.a();
    console.log('bzz');
  };
}
Run Code Online (Sandbox Code Playgroud)

我会有很多这类课程.我应该将方法移动到原型吗?

function Foo(a) {
  this.a = a;
}
Foo.prototype = {
  bar: function () {
    console.log(this.a);
  },
  buz: function () {
    this.a();
    console.log('bzz');
  }
}
Run Code Online (Sandbox Code Playgroud)

Tre*_*vor 6

是.这将节省内存,因为每次shared实例化类时,每个方法都将被重新创建.

构造函数内的方法被认为privileged methods是可以访问private variables构造函数内部的方法,只有在需要访问私有变量时才能使用它们.

Crockford对特权方法的看法