Привет всем.
Необходимо создавать элементы и хранить их в памяти для последующего конструирования из них блоков html.
Вижу 2 подхода.
Первыйfunction inputClass(id)
{
this.id = id;
function log(){
console.log(this.id);
};
this.log = log;
}
Тогда при создании через
new inputClass("first") получаем объект, имеющий:
id: "first"
log: log()
__proto__: inputClass
И второй вариант
function inputClass(id)
{
this.id = id;
}
inputClass.prototype.log = function log(){
console.log(this.id);
};
Тогда имеем объект, созданный через
new inputClass("second") и имеющий:
id: "second"
__proto__: inputClass
Функция log в данном случае одна и та же для всех создаваемых объектов.
Но в первом варианте она копируется в каждый из объектов, а во втором - хранится только в прототипе.
Правильно ли я понимаю, что чем больше объектов, тем больше экономим память во втором случае(через prototype)?
Есть ли подводные камни в данной ситуации, и есть ли способы еще оптимальнее?