Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2011, 12:15
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Динамическое создание объектов
function Data(show) {
	this.show = show || "вкл";
}

var data = new Data()

function Entite(show) {
	this.show = show || "вкл";
}

Entite.prototype = data;

poly = new Entite("вкл");
rect = new Entite("выкл");

alert(poly.show);  
alert(rect.show);


Есть такой вот простой код для создания наследования.
Необходимо что бы, по нажатия на кнопку происходило рождение нового объекта Entite, но каждый раз разного
$("#show").click(function(){
poly = new Entite("вкл");//но что бы по нажатию на кнопку имя объекта генерировалось динмически
});

<input type="button"  id='show'  value='Показать'/ > />
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2011, 14:21
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

Math.round(Math.random()) ? 'Вкл' : 'Выкл';
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2011, 16:31
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Извеняюсь, наверно глупый вопрос, но мне не понятно.
Как это
Math.round(Math.random()) ? 'Вкл' : 'Выкл';
привязать к
new Entite
что бы вновь создаваемый объект был наследником объекта Entite
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2011, 16:39
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

нужно что то типа этого
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script language="JavaScript" type="text/javascript">
function Data(show) {
	this.show = show || "вкл";
}

var data = new Data()

function Entite(show) {
	this.show = show || "вкл";
}

Entite.prototype = data;

$(document).ready(function(){ 

	$("#show").click(function(){
		for(var i=0;i<3;i++){
		i+'poly' = new Entite("вкл");//тут ошибка так как нельзя имя переменной так создавать
	
		alert(i+'poly'.show);  
		}
	});
	
});

</script>
<input type="button"  id='show'  value='Показать'/ >
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2011, 18:01
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

Не до конца понимаю что вам нужно и зачем:
$("#show").click(function(){
    var polys = {};
    for(var i=0; i < 3; i++) {
        polys[i + 'poly'] = new Entite("вкл");
        
        alert(polys[i + 'poly'].show);  
    }
});
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2011, 12:20
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

все спасибо работает
Сделал вот так пока что все работает.
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script language="JavaScript" type="text/javascript">
function Data(show) {
	this.show = show || "вкл";
}

var data = new Data()

function Entite(show) {
	this.show = show || "вкл";
}

Entite.prototype = data;

$(document).ready(function(){ 

	$("#show").click(function(){
		for(var i=0;i<3;i++){
		window[i+'poly'] = new Entite("вкл");
		//rect = new Entite("выкл");
		 
		}
		alert(window[2+'poly'].show); 
	});
	
});

</script>
<input type="button"  id='show'  value='Показать'/ >

Зачем мне это нужно.
У меня на сайте пользователь должен мочь сохранять свои персональные настройки страницы объект Data я буду использовать для сохранения настроек по умолчанию, а объект Entite для личных настроек пользователя, а здесь просто просил объяснить сам принцип динамического создания объектов, так как реально в объекте Data, будет очень много всего то я написал суть процесса.
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2011, 15:56
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Можно ли изменить свойства уже созданному объекта, через переустановку свойств родите
Решил написать в той же теме, хотя теперь задача не много по менялась.
Так как я делаю, форму настройки свойств страницы, то в объекте data хранятся общие настройки, а в динамически генерируемом [b+'zona'] настройки текущей страницы.
Когда объекты [b+'zona'] рождаются от data в них переходят все их свойства и методы, это как раз то что нужно,
Но когда я меняю свойства в объекте data, то в уже созданных объектах [b+'zona'] они не меняются, а нужно что б глобальные настройки после их установки изменяли установки во вновь созданных и уже СУЩЕСТВУЮЩИХ объектах .
Реализовал это вот такой функцией
function reWriteObj(data) { 
		for (var b=0;b<tabs.length;b++)
		{
			window[b+'zona'].coord = data.coord;
			window[b+'zona'].number = data.number;
			window[b+'zona'].changearea = data.changearea;
		}
}

Я не очень хорошо разбираюсь в тонкостях наследования Javascript, все работает но может есть какой нить другой прием заставить изменяться свойства в уже созданных объектах.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание таблицы Arfey Общие вопросы Javascript 7 10.06.2010 14:14
Динамическое создание вкладок mwnuke ExtJS 2 12.11.2009 12:21
Динамическое создание панелек dagster Элементы интерфейса 2 07.08.2009 12:49
динамическое создание тадлицы magistr_bender Элементы интерфейса 14 23.07.2009 17:36
Динамическое создание script src RaiDeR Общие вопросы Javascript 11 22.04.2009 17:04