Показать сообщение отдельно
  #12 (permalink)  
Старый 16.07.2015, 21:37
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Сообщение от khusamov Посмотреть сообщение
Я наверное плохо донес... это свойство JS я в общем-то знаю. Просто я считал, что классовая система Ext исправила ситуацию.
Честно сказать, мы бы исправили, если бы это было возможно. Но это не единственный косяк JavaScript, с которым приходится жить, поэтому проще сжать булки и иметь в виду.

Цитата:
Спасибо! Теперь есть чем заняться. Буду все написанные классы исправлять, там много у меня подобных свойств.
Лучше поздно в цикле разработки, чем после внедрения. Поверьте моему больному опыту. ;)

Цитата:
Мне сейчас придется начальные значения этих свойств описывать в конструкторе. По идее, классовая система Ext может это делать за меня, если в конфиге класса найдет такие свойства. Хотя бы так.
Неа-неа. Это вам кажется, что всё просто и классовая система может всё за вас сделать. В отдельно взятом простом случае, оно может быть и так. Но на всю библиотеку этот подход не масштабируется никак.

Цитата:
Но это не принципиально, просто заранее надо знать, что этот момент Ext не решает и надо самому не попасться.
Вы всё же путаете конфиги и обычные свойства. Для конфигов наследование как раз делается классовой системой:

Ext.define('Foo', {
    config: {
        blerg: {
            frobbe: 'throbbe'
        }
    }
});

Ext.define('Bar', {
    extend: 'Foo',

    config: {
        blerg: {
            qux: 'xyzzy'
        }
});

var beer = new Bar({
    blerg: {
        foo: 42
    }
});

console.log(beer.getBlerg());
// {
//     foo: 42,
//     frobbe: 'throbbe',
//     qux: 'xyzzy'
// }

var gurgle = new Bar({
    blerg: {
        frobbe: 'zingbong'
    }
});

console.log(gurgle.getBlerg());
// {
//     frobbe: 'zingbong',
//     qux: 'xyzzy'
// }


Ну, я малость разошёлся с именами метапеременных, но надеюсь, что понятно всё же будет. ;)
Ответить с цитированием