Не прототипирование
Есть у меня функция
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, время: 20:38. |