Javascript: предыдущее свойство не определено - PullRequest
1 голос
/ 27 апреля 2010

Почему в строке creditText говорится, что «lbp is undefined»? Как мне обратиться к предыдущим свойствам в файле конфигурации, таком как этот?

var lbp = {

    // Pertinant page properties, such as Author, Keywords, URL or Title
    page: {
        theURL: window.location.toString(),
    },

    // Configurable user defaults
    defaults: {
        creditText: lbp.page.theURL
    }
}

Заранее спасибо за помощь

Ответы [ 3 ]

3 голосов
/ 27 апреля 2010

Ты не. lbp не будет существовать в таблице символов текущей области, пока объект не будет закрыт.

var lbp = {
    // Pertinant page properties, such as Author, Keywords, URL or Title
    page: {
        theURL: window.location.toString(),
    }      
}; // NOW you can reference lbp by name

lbp.defaults = {
  creditText: lbp.page.theURL
};
0 голосов
/ 27 апреля 2010

Я бы предположил, что содержимое определяемого вами объекта интерпретируется до того, как значение будет присвоено переменной lbp. Я не думаю, что есть какой-либо способ сделать то, что вы хотите, без назначения значений в отдельной инструкции.

var lbp = {};
// Pertinant page properties, such as Author, Keywords, URL or Title
lbp.page = { theURL: window.location.toString() };
// Configurable user defaults
lbp.defaults = { creditText: lbp.page.theURL };
0 голосов
/ 27 апреля 2010

Вы просто не можете, ваша переменная lbp не определена, поскольку закрыта последняя скобка объявления.

...