Показать сообщение отдельно
  #8 (permalink)  
Старый 26.02.2013, 11:04
Аспирант
Отправить личное сообщение для Василий Б. Посмотреть профиль Найти все сообщения от Василий Б.
 
Регистрация: 01.03.2010
Сообщений: 44

melky,
а что должно быть в create методе? Чисто так, для любопытства спрашиваю.. Назначить прототипом Object мой объект popupObject?

Сообщение от danik.js
А каким боком это класс? Как можно создать два экземпляра этого класса?
посмотрите что дописал. Так хорошо?
/**
	 * Конструктор объекта.
	 * 
	 * @param string url путь к обработчику запроса
	 * @param object data данные для запроса
	 * @param function success функция, которая выполнится в случае выполнения запроса
	 * @return object this 
	 */
	constuctor: function(url, data, success){
		this.url = url;
		this.data = data !== undefined ? data : this.data;
		this.success = success !== undefined ? success : this.success;
		
		// Поскольку в JS нет классов, то мы создаем копию данного объекта (this)
		// и возвращаем его, что бы иметь возможность создавать несколько экземпляров объекта popupObject.
		var o = new Object();
		for (var i in this) {
			if (this.hasOwnProperty(i)) {
				o[i] = this[i];
			}
		}
		return o;
	},

и это работает, я пробовал создать два класса с разными параметрами. Ура!


Только я от не понял одного - я пытался изначально написать код клонирования объекта так:
var o = new Object();
for (var i in this) {
	if (this.hasOwnProperty(i)) {
		console.log(i + ' ' + this.i);
	}
}

вот что мне выдало в консоли:
Цитата:
url undefined
data undefined
success undefined
constuctor undefined
т.е. конструкция
this.i
- undefined. В упор не понимаю, почему так происходит. По идее, в i у меня содержится имя свойства. Почему я через точку не могу получить доступ к свойствам?

Последний раз редактировалось Василий Б., 26.02.2013 в 11:09.
Ответить с цитированием