Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该将类方法移到原型中吗?_Javascript_Performance_Prototype - Fatal编程技术网

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

Javascript 我应该将类方法移到原型中吗?,javascript,performance,prototype,Javascript,Performance,Prototype,我有课 function Foo(a) { this.a = a; this.bar = function () { console.log(this.a); }; this.buz = function () { this.a(); console.log('bzz'); }; } 我将有很多这个类的实例。我应该将方法转移到原型中吗 function Foo(a) { this.a = a; } Foo.prototype = { bar:

我有课

function Foo(a) {
  this.a = a;
  this.bar = function () {
    console.log(this.a);
  };
  this.buz = function () {
    this.a();
    console.log('bzz');
  };
}
我将有很多这个类的实例。我应该将方法转移到原型中吗

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

对。这将节省内存,因为每次实例化类时,每个方法都将被
共享
,而不是重新创建

构造函数中的方法被视为
特权方法
,因为它们可以访问构造函数中的
私有变量
,并且只有在需要访问私有变量时才应使用


放置类方法是一个节省内存的好主意。原型中只有一个方法实例,而不是每个对象中的多个实例。

在JS构造函数中定义方法的唯一原因是创建“”方法

其思想是创建一个公开可用的方法,但可以访问私有实例变量