Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разыменование ссылки на функцию возможно? (https://javascript.ru/forum/misc/36212-razymenovanie-ssylki-na-funkciyu-vozmozhno.html)

jsjob 07.03.2013 18:52

Разыменование ссылки на функцию возможно?
 
function createCounter() {
   var numberOfCalls = 0;
   return function() {
      return ++numberOfCalls;
   }
}

function fOnLoad(e)
{ var fn = createCounter();
  var fn2 = fn;
  alert(fn());
  alert(fn());
  alert(fn());
  alert(fn2());
  alert(fn2());
  alert(fn2());
}

onload=fOnLoad;

В десятой строке fn2 получает указатель на функцию создаваемую createCounter-ом, и соотвественно alert-ы считают от 1 до 6.
Возможно ли сделать так, чтоб в fn2 была ссылка на новую копию функции (т.е. fn и fn2 были бы независимыми счётчиками)?

jsgeek 07.03.2013 20:04

var fn2 = createCounter()

jsjob 07.03.2013 20:34

Спасибо, но меня интересует теоретический вопрос - создание копии "объекта" по ссылке на этот объект.

Например
- есть объект с некоторым состоянием
- создаём переменную со ссылкой на такой-же объект и с таким-же состоянием
- дальнейшие операции с объектами происходят с независимым изменением состояния

jsgeek 08.03.2013 17:32

Цитата:

Сообщение от jsjob (Сообщение 239361)
Спасибо, но меня интересует теоретический вопрос - создание копии "объекта" по ссылке на этот объект.

Например
- есть объект с некоторым состоянием
- создаём переменную со ссылкой на такой-же объект и с таким-же состоянием
- дальнейшие операции с объектами происходят с независимым изменением состояния

Ничего другого на ум не приходит кроме как клонирование объекта и инициализация его свойств свойствами клонируемого объекта.


Часовой пояс GMT +3, время: 18:27.