2011-05-26 91 views
0

我怎樣才能讓我的tabs私有變量,並從return {} ... console.log(tabs)回報undefined內唯一可...的Javascript私有變量

$(document).ready(function() { 
    Site.page = (function() { 
     return { 
      init: function() { 
       Site.page.tabs.init(); 
      }, 
      //manage deal tabs 
      tabs: (function() { 
       var tabs = null; 
       return { 
        init: function() { 
         console.log(tabs); 
        }, 
        show: function (tab) { 
         $('#deal-tabs > div.selected').removeClass('selected'); 
         $(tab).addClass('selected'); 
        } 
       } 
      })() 
     } 
    }()); 

    Site.page.init(); 
}); 
+0

它爲我打印出'null',因爲它應該。 – Matt 2011-05-26 00:27:46

+0

它看起來像你的代碼做你想做的事情。你是否在一些我從未聽說過的瀏覽器中試過它? – 2011-05-26 00:38:51

+0

你的代碼很好。 – Naor 2011-05-26 00:55:44

回答

1

爲什麼你的名字既功能和變量同名?如果你只需要返回{}的變量,然後在該代碼塊中聲明它,而不是在外面。

+1

JavaScript沒有塊範圍。在'return {}'中聲明它與在最近的封閉函數中聲明它在外部相同。 – Matt 2011-05-26 00:28:33