Динамическое создание объектов
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='Показать'/ > /> |
Math.round(Math.random()) ? 'Вкл' : 'Выкл'; |
Извеняюсь, наверно глупый вопрос, но мне не понятно.
Как это Math.round(Math.random()) ? 'Вкл' : 'Выкл'; привязать к new Entite что бы вновь создаваемый объект был наследником объекта Entite |
нужно что то типа этого
<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='Показать'/ > |
Не до конца понимаю что вам нужно и зачем:
$("#show").click(function(){ var polys = {}; for(var i=0; i < 3; i++) { polys[i + 'poly'] = new Entite("вкл"); alert(polys[i + 'poly'].show); } }); |
все спасибо работает
Сделал вот так пока что все работает.
<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, будет очень много всего то я написал суть процесса. |
Можно ли изменить свойства уже созданному объекта, через переустановку свойств родите
Решил написать в той же теме, хотя теперь задача не много по менялась.
Так как я делаю, форму настройки свойств страницы, то в объекте 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, все работает но может есть какой нить другой прием заставить изменяться свойства в уже созданных объектах. |
Часовой пояс GMT +3, время: 01:26. |