對不起,我不能再具體與標題。Javascript範圍問題,在一個匿名函數
我正在構建一個網站(個人),它根據url中使用的查詢字符串向用戶顯示不同的內容。
例如page=home.html
將顯示home.html
該網站的JavaScript被包裝對象內,包含不同的數據每個值,一些僞代碼:
(function(){
var wrapper = {
init: function(){
//Runs on document ready
this.foo();
this.nav.render();
},
foo: function(){
//Some functionality goes here for the website, e.g. Display something from an API
},
nav: {
//Functionality to handle the navigation, has different properties
config: {
//Contains the config for nav, e.g. page names + locations
dir: '/directory/to/content/',
pages: {
page_name: wrapper.nav.config.dir + 'page_value'
}
},
render: function(){
//some code
},
routes: function(){
//some code}
}
}
};
$(function(){
wrapper.init();
});
})();
我的問題是,我想前面加上dir
值每page
值(在頁面被定義的對象內部),期望得到directory/to/content/page_value
的輸出(在這個僞代碼的情況下),但是dir
是未定義的,當我試圖訪問它時,我試過了以下達到我想要的:
- wrapper.nav.config.dir +「page_value」
我一直在最後30分鐘試圖找出什麼我做錯了,甚至還想過玩弄硬編碼每個頁面的URL。
想要做到這一點的原因是我的本地開發服務器和Web主機有不同的目錄結構,所以我不想每次我想要開發+發佈時重寫URL。至於爲什麼一切都被包裹在一個物體中,我認爲這樣保持容易。
希望答案很簡單,這只是一個業餘的錯誤/缺乏理解。
哪裏是代碼'wrapper.nav.config.dir +「page_value''行?這不在你上面的例子中。 – jfriend00 2012-01-07 21:33:45
這是我用來嘗試和訪問目錄屬性,沒有成功 – Daniel 2012-01-07 21:47:09
我也編輯了問題,我試圖使用它。 – Daniel 2012-01-07 21:53:35