Сообщение от Aetae
|
Дело в том, что функция вызванная как x.func() выполняется в контексте x(за исключением особых случаев), а вызванная как просто func() - в текущем контексте.
|
Понял.
Сообщение от Aetae
|
P.S. Нет такой уж критической надобности переписывать весь уже написанный код. Если ваша страница\приложение в принципе на работает без полученных данных то юзер так или иначе вынужден будет ждать загрузки.)
|
Да я уже начал перелопачивать. И тут вылазят все новые и новые нюансы.
Есть у меня еще один вопрос.
Предположим, инит объекта вызывается из объекта более "верхнего" уровня. Вот так:
Код:
|
function UpLevelClass()
{
this.init = function()
{
alert('Up level class this 1:'+this);
worker=new Worker();
worker.init(this.initNext);
};
this.initNext = function()
{
alert('Up level class this 2:'+this);
};
} |
Код:
|
function Worker()
{
this.init = function(upLevelCallBack)
{
... всякие действия для инита
upLevelCallBack();
}; |
Спрашивается, в каком контексте будет выполнена функция initNext()? По-моему, совсем не в контесте класса UpLevelClass.
Теперь вопрос: Как в функции init() класса Worker узнать контекст функции upLevelCallBack? Ведь нам ее надо вызвать в контексте класса UpLevelClass, а не в текущем контексте!