Динамическое создание объектов
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, время: 11:18. |