Лишний объект создал из-за того, что буду обращаться из объекта jQuery, а там this уже имеется. Это для своего удобства. Мне кажется, что лишний объект не сильно повлияет на быстродействие.
Цитата:
|
Про 2 раза не знаем, весь код не видели, мало ли чего вы намудрили.
|
Это и есть весь код, только без функции вывода ошибки и без инициализации нужных переменных. Но если на то пошло, то вот класс:
var User = function(id){
var then = {};
then.id = id;
/* Основные переменные */
then.phpGet = "./model/gb/js/user/user.php";
then.errorMessage = {
0: "Вы не имеете доступа к разделу!"
};
/* Получение информации о пользователе */
then.getInfo = function(param){
param.id = then.id;
/* Запрос на сервер */
$.get(then.phpGet, param, function(data){
/* Парсим данные */
var data = JSON.parse(data);
/* Если ошибка, выводим сообщение */
if(data.error !== undefined){
then.showError(data.error);
}
else /* Добавляем к основному объекту принятые параметры */
{
for(var i in data)
then[i] = data[i];
if(param.onComplete !== undefined && typeof(param.onComplete) == "function")
then.End(then);
}
});
}
/* Функция вывода ошибки */
then.showError = function(error_id){
alert("Ошибка №" + parseInt(error_id+1) + "! " + then.errorMessage[error_id]);
};
return then;
};
Вот создание объекта:
var UserEnter_id = 1;
var yakud = new User(UserEnter_id);
yakud.getInfo({
param :['nick', 'type'],
End :function(d){
if(d !== undefined)
alert(d)
}
});
Вот так вот работает, а без
if(d !== undefined)
вызывается два раза. Нужно как-нибудь избавится от этого условия и чтобы функция, вызывалась только один раз. Если поставить условие в классе, то это погоды не сделает, т.к. я уже говорил, что функция вызывается точно только один раз.