Чем отличаются прототипы от классов
Я не особо разбираюсь в классах хотя и прочитал что это такое вдоль и поперек. Я читал википедию и читаю теорию ооп.
Я пришел к выводу: Прототипы - это одна из реализаций классов. Может я тупой, а может тупые те кто говорит что в js классов нет????? Или я не прав? Поправьте. Прототипы это и есть классы еманаврот! |
//это разве не класс?
function Cat(a){
this.size = a
}
//а это разве не экземпляр класса?
var cat = new Cat(4)
Нет, может я тупой? Но это же класс! Хоть убейте, но это класс кошек, который создает экземпляры! Может люди просто НЕ ЗНАЮТ? |
Утро вечера мудренее. Может не стоит пытаться понять ООП JS в 3 часа ночи ? :)
|
Цитата:
Ограничение прав доступа к полям, абстрактные поля, абстрактные классы и интерфейсы, и так далее. А в JS - функции-конструкторы объектов, работа с ними похожа на работу классическими классами o_O. Цитата:
|
Цитата:
![]() Да, пора. Туда. В 7 вставать |
Цитата:
|
Livaanderiamarum,
Э то не костыль, а так сказать подражание программированию классами, да можно сделать приватные, статические, приватные статические классы и методы.
function Class() {
Class.prototype.init.apply(this, arguments)
}
Class.prototype = new function (Class) {
// private (Вызывается в контексте инстанса)
function privateMethod () {
}
// public
this.init = function () {
privateMethod.call(this);
}
// public static
Class.staticMethod = function () {
privateStatic();
}
// независим от контекста
function privateStatic () {
}
}(Class);
А в java да, там для этого специальные конструкции
class Class() {
public void init () {}
private void privateMethod () {}
public static void staticMethod() {}
private static void privateStatic(){}
}
|
Livaanderiamarum, Синтаксические конструкции в разных языках называются по разному. Внимательно прочтите определение класса, нигде не говорится об обязательном присутствии ключевого слова class.
|
monolithed,
Цитата:
Цитата:
тред не читай @ сразу отвечай |
Цитата:
var a = 10;
function F() {
var a = 20; // зачем здесь var?
}
|
| Часовой пояс GMT +3, время: 05:49. |