Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   объекты JS "Конструкторы" (https://javascript.ru/forum/misc/59238-obekty-js-konstruktory.html)

pepel266 02.11.2015 13:52

объекты 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() {......}
})

loljs 06.11.2015 16:42

Не особо внятно изложено, но, возможно вот это
<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>


Часовой пояс GMT +3, время: 19:07.