Показать сообщение отдельно
  #1 (permalink)  
Старый 15.04.2014, 17:20
Новичок на форуме
Отправить личное сообщение для Pedro Garciya Lopez Посмотреть профиль Найти все сообщения от Pedro Garciya Lopez
 
Регистрация: 05.07.2013
Сообщений: 9

Свойство объекта в качестве ссылки на переменную, возможно ли?
Есть некий прототип объекта, и есть несколько объектов которые наследуют этот прототип. Так же есть глобальная переменная, которую каждый из этих объектов может изменять одним из своих методов. Точнее таких переменных может быть несколько, поэтому я хотел при инициализации конкретного объекта указывать с какой именно переменной он работает. Можно ли как-то это реализовать? Так как я думал, не получается:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<script>
	//Объект
	function obj(init)
    {
        this.data = init.data;
    }

    obj.prototype.f1 = function(d) 
    {
		this.data = d;
    }

	var var1='первоначальное значение',
	
		o1 = new obj({ data: var1 }), // инициализируем объект o1

		// я наивно полагал что таким образом свойство data этого
		// объекта будет ссылаться на переменную var1
		// и в методе она будет доступна через this.data
	
		o2 = new obj({ data: var1 }); // инициализируем объект o2

	o1.f1('первый'); //вызываем метод объекта o1 который по моим предположениям должен был изменить значение var1 

	alert(var1); // увы var1 по прежнему равен своему первоначальному значению
	
	o2.f1('второй');
	alert(var1);
</script>
<body>
</body>
</html>
Ответить с цитированием