Я пытаюсь найти правильное место для привязки прототипа функции, которая будет вызвана позже.Полный код примера можно найти здесь:
http://www.iprosites.com/jso/
Мой пример JavaScript очень прост:
function Obj(width, height){
this.width = width;
this.height = height;
}
Obj.prototype.test = function(){
var xhr=init();
xhr.open('GET', '?ajax=test', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
xhr.onreadystatechange = function() {
if (xhr.responseText == '403') {
window.location.reload(false);
}
if (xhr.readyState == 4 && xhr.status == 200) {
this.response = parseResponse(xhr.responseText);
document.getElementById('resp').innerHTML = this.response.return_value;
this.doAnotherAction();
}
};
xhr.send();
}
Obj.prototype.doAnotherAction = function(){
alert('Another Action Done');
}
var myo = new Obj(4, 6);
Если вы попытаетесь запустить myo.test() в Firebug вы получите ответ «this.doAnotherAction is not function».2 функции поддержки init () и parseResponse () можно найти в ссылке test.js, если вы хотите их просмотреть, но они не должны быть слишком актуальны для этой проблемы.Я подтвердил, что this.doAnotherAction () считает, что «this» - это объект XMLHttpResponse, как и ожидалось от экземпляра теста.
Может ли кто-нибудь помочь с определением направления связывания?Все, что я пробовал, похоже, не работает!
Я использую Mootools, хотя библиотека в этом примере отсутствует.
Заранее спасибо,
Арион