Допустим, у меня есть следующий сценарий:Конструкторы объектов внутри объекта конструкторами
var A = function() {
this.b = "asdf";
this.c = function() {
this.source = "asd";
this.data = function() {
var response;
$.getJSON(this.source, function(data) {
response = data;
});
return response;
};
};
};
Поэтому я сделал эти закрытия является то, что у меня есть другие объекты и переменные внутри A
, что делает объектно-ориентированное приложение. У меня есть некоторые сомнения по поводу этого сценария:
- Как бы сослаться на
A.b
внутри методаA.c
?this
относится к экземпляруA.c
, а не кA
.
Примечание: цель состоит в том, чтобы на new A()
, генерировать объект вроде этого:
{
b: "asdf",
c: {
source: "qwerty",
data: {
jsondata1: "jsonvalue1",
jsondata2: 3,
// ...
}
}
}
, но я знаю instance.c
еще будет функция-конструктор, и я понятия не имею, как сделать его объект внутри другой.
Не можете ли вы хотя бы ответить на первый вопрос, просто попробовав его? Хотя 'new A()' не будет создавать эти свойства вообще. Вам также придется вызывать 'c()' в экземпляре 'A'. –
Да, извините и спасибо за это. Иногда Stack Overflow делает меня ленивым! – gchiconi
Btw, прежде чем вы застрянете в следующий раз: [Как вернуть ответ от ** асинхронного вызова AJAX?] (Https://stackoverflow.com/questions/14220321/how-to-return-the-response- from-a-ajax-call) – Bergi