| Dmitry A. Soshnikov | 
			24.08.2009 19:24 | 
		 
		 
		
		 
		
		
		
		
		JSprog, подожди, тут я уже начал путаться.
 
	Цитата: 
	
	
		
			 
			
				
					Сообщение от JSprog
					
				 
				В том что свойства из прототипа просто читаютса 
			
			 
		 | 
	 
	 
 А что ещё можно с ними делать? Вероятно, не только читать из прототипа, но и записывать туда. И свойства и методы, да?
 
	Цитата: 
	
	
		
			 
			
				
					Сообщение от JSprog
					
				 
				Именно 
			
			 
		 | 
	 
	 
 А почему тогда в данном случае .hasOwnProperty выдаёт true?
 
function A(x) {
  this.x = x;
  this.getX = funciton () {
    return this.x;
  };
}
 
var a = new A(10);
var b = new A(20);
// ну тут понятно
alert(a.hasOwnProperty('x')); // true
alert(b.hasOwnProperty('x')); // true
// а здесь почему, если ты говоришь, что
// метод getX - один на оба объекта
alert(a.hasOwnProperty('getX')); // true
alert(b.hasOwnProperty('getX')); // true
	Цитата: 
	
	
		
			 
			
				
					Сообщение от JSprog
					
				 
				Ведь зачем копировать метода на всех? Это отнимает много памяти да и редко методы менять приходитса в экземплярах. 
			
			 
		 | 
	 
	 
 Логично, но почему тогда .hasOwnProperty('getX') для обоих объектов выдало true? Есть ли какой-нибудь способ, чтобы метод .getX действительно был один на оба объекта? Сейчас получается, что оба из них имеют две разные функции, но выполняющие одно и тоже. Реально, не очень выгодно по ресурсам.
 
	Цитата: 
	
	
		
			 
			
				
					Сообщение от JSprog
					
				 
				Методы это тоже свойства которые содержат функцию. 
			
			 
		 | 
	 
	 
 Ну я понимаю, т.е. и свойства и методы можно хранить в прототипе и тогда эти свойства и методы будут одними и теми же на все экземпляры, так? Или не так?
 
	Цитата: 
	
	
		
			 
			
				
					Сообщение от JSprog
					
				 
				Верно только для методов 
			
			 
		 | 
	 
	 
 Можешь показать на примере, не очень понял. Почему свойства так обделены?  
	 |