|
Интерфейсы в javascript
Привет.
На вашем сайте читал статью про наследование и ООП. А делал ли кто-то интерфейсы на javascript ? Причём чтобы любой класс мог наследоваться от какого-то другого класса и реализовывать n-ое количество интерфейсов ? |
интерфейсов и классов в JS - нет (но велосипедов реализации до кучи), но наследование есть, такое о котором вы уже прочитали.
|
Мне вот хотя бы один пример велосипеда с интерфейсами посмотреть...
|
Если классы ещё кому-то нужны в JS, то интерфейсы точно не нужны, поэтому и велосипедов нет.
|
Цитата:
интерфейсы: http://knol.google.com/k/programming...r-i-mean-faked http://files.trygve-lie.com/examples...ect_interface/ давно что-то еще читал по этой теме, но где припомнить не могу... Цитата:
Как бы это отрицательно сказалось если бы в JS были интерфейсы? По моему если есть классы, то не использовать интерфейсы не логично. В AS они есть и это же прекрасно, почему бы в JS не реализовать? |
Цитата:
Цитата:
|
Цитата:
Цитата:
interface A { function foo():void; } interface B { function bar():void; } class myClass implements A, B { public function foo():void {} public function bar():void {} } причем, интерфейс может же и выступать как отдельная сущность: public interface A { function fooA():void; } public interface B extends A { function fooB():void; } public interface C { function fooC():void; } public interface D { function fooD():void; } public interface E extends C, D { function fooE():void; } Но JS, мы тоже самое через одно место будем делать, в замен наглядности и минимального использования кода. Kolyaj, только не стоит думать, что меня что-то в JS не устраивает или ограничивает, просто ничего плохого в реализации интерфейсов я не вижу, может по тому, что в я к ним привык в AS и PHP... |
Цитата:
Цитата:
class myClass { public function foo():void {} public function bar():void {} }? |
Цитата:
Во втором случае определяется класс без конструктора, что в AS принято называть реализацией абстрактных методов (хотя их там и нет формально). Я честно не понял вашу мысль, наверно имелось ввиду это? interface myClass { public function foo(param:int = 0):void } class A implements myClass { public function foo(param:int = 1):void {} } |
Ответьте для себя на вопрос: "Зачем в статических языках нужны интерфейсы?". После чего можно будет ответить на другой вопрос "Почему в динамических языках интерфейсы не нужны?".
|
Часовой пояс GMT +3, время: 14:35. |
|