| 
		
			Сообщение от nerv_
			
		
	 | 
	| 
		т.о. для того, чтобы сложить три числа, тебе надо вручную построить три объекта. Аналогично и со строками. Не бред ли?
	 | 
	
Не понял мысль. Числа - элементарный тип. При их сложении вообще не вызываются какие-либо конструкторы.
	
	| 
		
			Сообщение от nerv_
			
		
	 | 
	| 
		это встроено в язык - прототипы
	 | 
	
Нет, не встроено. Прототип - это в первую очередь средство решения архитектурных задач, а не оптимизации.
Например, если вам надо сделать цепочку наследований, такого плана:
{
    a: function () {},
    __proto__: {
        b: function () {},
        __proto__: {
            c: function () {}
        }
    }
}
То вы не сможете решить прототипами задачу оптимизации, так как прототип уже использован под наследование:
function A() { this.a = function () {}; }
A.prototype = new B(); // Сюда не получится запихнуть реализацию метода a.
function B() { this.b = function() {}; }
B.prototype = { c: function () {} };