Показать сообщение отдельно
  #4 (permalink)  
Старый 19.11.2012, 14:18
Аспирант
Отправить личное сообщение для vashurin Посмотреть профиль Найти все сообщения от vashurin
 
Регистрация: 01.04.2008
Сообщений: 52

Сообщение от kobezzza Посмотреть сообщение
Всё верно, вы берёте свойство из прототипа и меняете его, поэтому оно поменяется у всех инстансов, поэтому все свойства должны определятся в конструкторе, а не тянуться из прототипа. Прототип для методов или общих свойств.
Да, тогда у автора ног будет столько, сколько он захочет

Код:
var Animal = function(){
	this.public = {}
	this.public.legs = 0;
};
Animal.prototype.setLegs = function(n){
	this.public.legs = n;
}
Animal.prototype.getLegs = function(){
	return this.public.legs;
}
var bird = new Animal();
bird.setLegs(2);
console.log(bird.getLegs());

var dog = new Animal();
dog.setLegs(4);
console.log(dog.getLegs());
Ответить с цитированием