Я создал экземпляр объекта JavaScript "Пользователь". Содержит все необходимое для управления пользователями. Здесь можно управлять даже загрузкой и возможной ошибкой AJAX. Ниже приведен снимок этого объекта.
var User = function(uid, ajaxURL) {
this.uid = uid;
this.ajaxURL = ajaxURL;
};
User.prototype = {
loadingShow: function (tag) {
this.tag = (tag) ? tag : '.tab-pane';
$(this.tag + ' .loading').html('<img src="img/template/loading.gif" alt="Loading..." title="Loading...">').fadeIn('fast');
},
//...
};
User.prototype.loadAction = function (rel) {
var utls = new User();
var relAttr = rel;
$.ajax({
type: 'POST',
url: this.ajaxURL + '&id=' + parseInt(this.uid),
cache: true,
dataType: 'json',
data: {
toDo: relAttr
},
beforeSend:function(){
utls.loadingShow('#' + relAttr + '-tab');
},
//...
Он отлично работает, но у меня есть только вопрос, возможно, глупый, но я впервые сталкиваюсь с JavaScript OOP и программированием на основе прототипов.
Почему я должен создать var utls = new User();
для вызова этого utls.loadingShow(
, а не просто вызвать его this.loadingShow(
? Используя свойство this
, я получаю сообщение об ошибке "TypeError: this.loadingShow не является функцией".