有一些代码,我想知道,在这种情况下会发生记忆经济吗?
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调用它。 在第二种情况下,我只需使用必要的方法创建一个对象并返回该对象。