2010-04-26 41 views
1

爲什麼在「creditText」的行上顯示「lbp未定義」?我該如何引用配置文件中的以前的屬性?Javascript:以前的屬性是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

你不知道。在對象關閉之前,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

您不能,因爲聲明的最後一個括號關閉,所以您的lbp變量未定義。

0

我猜想你正在定義的對象的內容被解析之前,該值被分配給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 };