Запутался с прототипами... 
		
		
		
		Всем привет! 
	Наследуется ли свойство прототипа всем объектам? К примеру: 
function SomeF() {
  this.name = "";
}
SomeF.prototype.IsNamed = false;
SomeF.prototype.SetName = function(txt) {
   this.name = txt;
   this.IsNamed = true;
}
var a = new SomeF();
alert(a.IsNamed);
a.SetName("AAA");
alert(a.IsNamed);
var b = new SomeF();
alert(b.IsNamed);
Разве не должна строка 15 выдать true? P.S. пример абстрактный - не придирайтесь :)  | 
	
		
 Keramet, 
	строка 14 создали новый обьект b -- причём тут обьект a?  | 
	
		
 рони, А разве свойства прототипа не наследуются всем объектам, созданным от этого прототипа?? (в моём примере - свойство IsNamed). 
	 | 
	
		
 рони, если можете, поясните разницу в этих двух фрагментах: 
	
function SomeF() {
  this.name = "";
}
SomeF.prototype.IsNamed = false;
function SomeF() {
  this.name = "";
  this.IsNamed = false;
}
Я просто считал, что во втором примере свойство IsNamed уникально для каждого объекта; а в первом - все объекты имеют одно и тоже значение, и если в одном объекте свойство изменится - то это изменение касается сразу всех объектов.  | 
	
		
 Keramet, 
	Цитата: 
	
  | 
	
		
 :) ок. а они появятся в этом году?  И, кстати, кто на форуме считается спецом ООП? 
	 | 
	
		
 Цитата: 
	
 в случае примитива оба варианта одинаковы, если обьект то во первом варианте будет один обьект для всех, пусть меня поправят если не так.  | 
	
		
 Keramet, 
	может вам singleton нужен?  | 
	
		
 Цитата: 
	
 Keramet, значение IsNamed будет уникальным для каждого экземпляра, аналогично public var в классах. Но это не работает для массивов и объектов, так как там значение наследуется по ссылке. 
function MyClass() {
};
MyClass.prototype.foo = [];
var a = new MyClass;
a.foo.push(123);
var b = new MyClass;
b.foo.push(456);
alert(a.foo == b.foo);
 | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 10:04. |