Не прототипирование
Есть у меня функция
Array.prototype.copy = function() {...}
была давно сделана через прототип, чисто для краткости кода и не замусоривания пространства имен. Но таким образов пухнет объем оперативки как я понимаю. Можно ли использовать такой способ.
Array.copy = function() {...}
|
Цитата:
Цитата:
а еще можно использовать, к примеру:
copy = function() {...}
но это все три разных кода, которые выполняют разыне задачи, и по-разному же должны использоваться. кстати, ваш второй код гораздо ближе к моему примеру, нежели к вашему первому коду. |
Цитата:
copy = function Повторюсь не хочу мусорить в пространстве имен. |
Цитата:
в вашем коде, вы добавляете метод в уже существующий объект Array.prototype. память выделяется только под функцию, и выделяется один раз |
Цитата:
|
Объем оперативки не "пухнет" ни в том, ни в другом случае. Разница в том, что если использовать prototype, что метод copy будет у всех массивов, а если copy будет методом объекта Array, то и использовать его можно только как Array.copy. Т.е.
Array.copy1 = function(){};
Array.prototype.copy2 = function(){};
var array = [];
alert(array.copy1); // undefined
alert(Array.copy1); // copy1
alert(array.copy2); // copy2
|
Спасибо за разъяснения.
Вопрос закрыт. |
| Часовой пояс GMT +3, время: 08:13. |