Показать сообщение отдельно
  #45 (permalink)  
Старый 25.07.2012, 16:08
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

А теперь получается, что первый аргумент - имя класса, третий - прототип, а второй - свалка для всего остального, отчасти это статические свойства, отчасти параметры для функции. Я бы тогда поместил статические свойства в отдельный параметр и убрал двойное подчеркивание:
Class("Foo", {
    context: window,
    extends: "Bar",
    implements: [ "IBase", "IPersistent" ],
    static: {
        STATIC_PARAM: 1,
        STATIC_CONST: "lala"}
}, {
    // code
});


Кстати, можно как-то в прототипе указать конструктор? Или надо для этого указывать функцию вместо объекта?

Ну и, предыдущий интерфейс остался же? Я считаю, не стоит стремится всем угодить.

P.S. Я не очень старался, но я не въехал в код угадывания какой входной параметр что обозначает.
Ответить с цитированием