|
Интерфейсы в 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, время: 22:27. |
|