实例化许多JavaScript对象的最佳方法是什么?

时间:2009-11-30 01:39:50

标签: javascript performance

我需要在一个页面中创建特定类的许多实例,我想知道我定义该类方法的方式是否会影响页面的性能。我是否定义这样的方法是否重要:

function Foo(h, l) {
  this.h = h;
  this.l = l;
}

Foo.prototype.bar = function(x) {
  // do stuff
}

或者这个:

function Foo(h, l) { 
  this.h = h;
  this.l = l;

  this.bar = function(x) {
    // do stuff
  };
}

如果我必须创建此类的许多实例(并且该类还有其他几种方法),是否提供了性能优势?或者我应该使用另一种更好的方法吗?假设我使用new Foo(h,l);

实例化所有对象

2 个答案:

答案 0 :(得分:3)

第一个是首选。在这种情况下,bar函数只有一个定义,所有Foo个对象都共享它。在第二种情况下,每次都会声明bar函数,每个对象都包含它们自己的版本。

答案 1 :(得分:1)

最好使用第一个方法,因为每个bar实例共享相同的Foo属性。