Я проверяю экземпляр класса qooxdoo, используя console.log('%o', inst). Здесь свойства показаны с ведущими отметками "$$user...". Но при добавлении нового свойства в класс оно не отображается в выводе console.log. Код работает с использованием нового свойства; поэтому синтаксис и структура класса в порядке. Я проверил в режиме выпуска и отладки. Что мне нужно сделать, чтобы новое свойство появилось и в выходных данных console.log? Или что-то закешировано, поэтому оно не будет отображаться до определенного обновления?
Новое свойство qooxdoo не отображается в инструменте журнала
Ответы (1)
Qooxdoo использует $$user_
для хранения текущего значения свойства, предоставленного пользователем. Значения $$user_
устанавливаются только в том случае, если свойство было активно установлено после создания свойств объекта во время инициализации класса.
Недостаточно иметь какое-то значение init, поэтому вам нужно что-то активно туда вставить, чтобы сделать их видимыми в вызове console.log
выше.
Значения инициализации хранятся в прототипе как $$init_
, за которым следует имя переменной. Так
qx.Class.define("foobar", {
extend: qx.core.Object,
properties: {
test1 : {},
test2 : {init: 5}
}
});
не приведет ни к одному $$user_test1
или $$user_test2
сразу после инициализации класса. Если вы вызовете setTest2(99)
, вы увидите, что $$user_test2
появляется в консоли и исчезает, если вы вызываете resetTest2()
.
Чтобы ответить на вопрос: вы можете только принудительно установить значения $$user_
, активно вставив что-то. Или лучше определить watch в консоли Chrome, который вызывает getTest2()
для наблюдаемого объекта.