Есть некий прототип объекта, и есть несколько объектов которые наследуют этот прототип. Так же есть глобальная переменная, которую каждый из этих объектов может изменять одним из своих методов. Точнее таких переменных может быть несколько, поэтому я хотел при инициализации конкретного объекта указывать с какой именно переменной он работает. Можно ли как-то это реализовать? Так как я думал, не получается:
<!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>