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 у меня содержится имя свойства. Почему я через точку не могу получить доступ к свойствам?