JavaScript对象的内存消耗

时间:2017-06-20 12:18:33

标签: javascript

有一些代码,我想知道,在这种情况下会发生记忆经济吗?

var Person = {
  getName: function(){
    return this.name;
  },
  bigMethod: function(){
    // here some large code 
  }
};

var createPerson = function(obj){
  var person = {};      
  person.getName = function(){
    return Person.getName.call(obj); 
  };
  person.bigMethod =function(){
    return Person.bigMethod.call(obj);
  };
  return person;
}

var persons = [];

for (var i =0; i < 1000; i++){
  persons.push(createPerson({name:'Gregory'}));
}

或原则上,我可以这样做:

var createPerson = function(obj){
    var person = {};      
    person.getName = function(){
      return obj.name; 
    };
    person.bigMethod = function(){
      // here some large code 
    };
    return person;
}

var persons = [];

for (var i =0; i < 1000; i++){
  persons.push(createPerson({name:'Gregory'}));
}

在第一种情况下,我在一个单独的Person对象中用长代码移动了一些假设方法的实现,我从createPerson调用它。 在第二种情况下,我只需使用必要的方法创建一个对象并返回该对象。

0 个答案:

没有答案