Чем отличаются прототипы от классов
Я не особо разбираюсь в классах хотя и прочитал что это такое вдоль и поперек. Я читал википедию и читаю теорию ооп.
Я пришел к выводу: Прототипы - это одна из реализаций классов. Может я тупой, а может тупые те кто говорит что в 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, время: 03:41. |