Классы js... 
		
		
		
		Доброго времени суток! 
	Почему плохо говорят про зайцев, прототипное наследование? Типо в js нет классов... Да но только на уровне языка, а так они легко эмулируются, следовательно классы есть, результат то на выходе один. Тем более в экма 6. Я понимаю что это все та же цепочка прототипов, эмулирующая классы, но синтаксис нормальный, что еще нужно??? Мне кажется или тут вопрос скорее философский?:)  | 
	
		
 Просто для многих главным признаком наличия классов в языке является наличие ключевого слова class :) А вообще полезно задать себе вопрос: "а что есть класс?", и выянится, что в JavaScript есть классы, просто их реализация немного отличается от реализации скажем в Java. Как раз для таких людей и добавили в следующем стандарте новую "сахарную" обёртку. Лично я использую слово "класс" в отношении JS и ещё ни разу не встречал человека, который бы не понял, что я имею ввиду, но зато встречал много тех, кто на макросе начинал кричать: "в JS нет классов, нуб!". 
	 | 
	
		
 Если Винни Пух сказал, что это мед, значит это мед :) 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 
var __class = function() {
   this.static = 1;
}
new __class().static;
 | 
	
		
 monolithed, 
	дык это не статический метод, ты уже создаешь экземпляр класса и получаешь свойство у созданного экземпляра, что уже является не статическим свойством.  | 
	
		
 Цитата: 
	
 
function Foo() {
    this.bar = 1;
}
function Bar() {
    this.bar = 2;
    // обращение к методам/свойствам родительского класса
    alert(Object.getPrototypeOf(this).bar);
}
Bar.prototype = new Foo();
new Bar();
 | 
	
		
 Нормальный синтаксис че ;)  
	
<script type="text/javascript" src="https://github.com/devote/jsClasses/raw/master/class.js"></script>
<script type="text/javascript">
// выглядят статические методы "классов" в JS
var Foo = Class({
    static: 1
}, {
    fooMethod: function() {
        alert('foo');
    }
});
alert(Foo.static);
// обращение к методам родительского класса
var Bar = Class({
    method: function() {
        alert('Я родитель че');
    }
});
var Baz = Class(Bar, {
    method: function() {
        this.parent.method();
        alert('Я НЕ родитель че');
    }
});
new Baz().method();
// а также множественное наследование
var Zaz = Class([Foo, Baz], {
    zazMethod: function() {
        alert('zaz');
    }
});
var inst = new Zaz();
inst.fooMethod();
inst.method();
inst.zazMethod();
</script>
 | 
	
		
 devote, а как у тебя передаётся контекст вызова родительскому методу при перекрытии в дочернем? Ведь если написать: 
	this.parent.method.call(this); То выполнение метода уйдёт в рекурсии при наследовании выше второго уровня: superParent > parent > child и т.д. Или у тебя за ширмой реализации скрыта какая то магия?)  | 
| Часовой пояс GMT +3, время: 13:29. |