Размещаю не в веб-деве потому, что вопрос касается ресурсов и производительности.
Спрашиваю потому, что понятия не имею как это правильно загуглить.
Собственно есть необходимость создавать сотни тысяч объектов данных. Варианта два — «интерактивные» (не знаю как правильнее выразиться) классы и «тупые» объекты.
Вариант первый:
function myObj(data)
{
var _internalData = data;
this.myMethod = function() {
// что-то делаем с данными
console.log(_internalData);
}
}
var obj = new myObj({a: 1, b: 2});
obj.myMethod();
Вариант второй:
function methodForMyObj(obj)
{
// что-то делаем с данными
console.log(obj._internalData);
}
var obj = {_internalData: {a: 1, b: 2}};
methodForMyObj(obj);
Вопросы такие:
1) Будет ли для первого варианта «клонироваться» в памяти методы при new myObj()?
2) Как правильно замерить?
3) Есть ли различия в поведении js-движков для вышеописанного контекста?
4) Предполагаю есть еще вариант с прототипами?
З.Ы.: Сейчас используется второй вариант, и при 600к «тупых» объектов данных браузер летает. За первый вариант спрашиваю потому, что если оверхеда нет, то я бы перевел на первый ради инкапсуляции данных и разделения ответственности.