Вы просто отказались от использования приватных переменных с геттерами и сеттерами, используя me = this;
Вы только что сделали me
глобальной переменной, не используя var
.(любая переменная, не определенная с помощью var, присоединяется к глобальному пространству имен)
В вашем случае, поскольку вы работаете в одной и той же области объекта, вы можете просто использовать this
и избегать me
как личнодумаю, что это сбивает с толку.Но если вы хотите придерживаться этой парадигмы, используйте var me = this;
Ваш пример действительно неясен, где происходит ошибка?Вы звоните data.setXml()
без параметров, поэтому me.xml
сделает ставку на undefined
.Этого следует ожидать, если вы ничего не передадите в метод.
Также имейте в виду, что из-за асинхронной природы вашего вызова вы должны сделать что-то вроде:
data.loadXml();
console.log("data.getXML();", data.getXML()); // would be undefined
data.getXML () в тот момент все еще будет неопределенным, так как, вероятно, ваш асинхронный вызов еще не вернулся, поэтому не устанавливается атрибут xml вашего объекта.