Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2015, 13:52
Интересующийся
Отправить личное сообщение для pepel266 Посмотреть профиль Найти все сообщения от pepel266
 
Регистрация: 31.10.2015
Сообщений: 10

объекты JS "Конструкторы"
Добрый день, js изучаю относительно недавно.. ни как не разберусь с "конструкторами и прототипами" объектов... Может сможет кто согласиться растолковать мне что да как....
Допустим есть конструктор объекта:
//кострутор обекта....
function BaseObj(){
	this.name = nameCase();
	this.rest = checkCache();
}

с помощью этого конструктора заполняется массив:
function ArrBase(){
	var datBaseArr = [];
	var length = prompt('кол - во объектов:',1);
	if(!isNumeric(length)){
		ArrBase();
	}
	for(var i = 0;i < length;i++){
		datBaseArr.push(new BaseObj());
	}
	return datBaseArr;
}

Как мне добавить свойство любому выбранному объекту из массива и записать в него значение, в нужный мне период времени, допустим по клику мыши...
Необходимо,что бы при создании объектов этого свойства у них не было...
Например:
Object.defineProperty(Здесь к чему привязыват, к BaseObj или же непосредственно datBaseArr[i]? ,"subtrahend", {
set: function() {......}
})
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2015, 16:42
Аспирант
Посмотреть профиль Найти все сообщения от loljs
 
Регистрация: 06.11.2015
Сообщений: 68

Не особо внятно изложено, но, возможно вот это
<html>
<head>

<meta charset="utf-8">

<style>


</style>

</head>
<body>



<button id="add">add</button>
<button id="show">show</button>

<script>

 
function BaseObj(){
	this.array = []
}
BaseObj.prototype.add = function(value){this.array.push(value)}
BaseObj.prototype.show = function(){alert(this.array)}

//с помощью этого конструктора заполняется массив:
function ArrBase(){
	var datBaseArr = [], length
	if(!/^\d+$/.test(length = prompt("number of objects", 1))){
		ArrBase();
	}
	for(var i = 0; i < +length; i++){
		datBaseArr.push(new BaseObj());
	}
	return datBaseArr;
}

arr = ArrBase()

add.onclick = function(){arr[0].add(1)}
show.onclick = function(){arr[0].show()}


</script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать выполнение одного JS после выполнения другого vita1ii Events/DOM/Window 2 11.01.2013 18:52
JS Coaching для стартапа OlgaAyva Работа 12 27.09.2011 22:18
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Срочно JS developer okp Работа 13 23.08.2011 16:16
Срочно JS developer okp Работа 7 14.06.2011 14:54