2011-04-18 16 views
1

我正在編寫一個Web應用程序,它使用YUI3來處理JS的所有需求。我需要的功能包括工具提示,工具提示,其內容由AJAX查詢,切換按鈕等等決定。我的JavaScript架構(YUI3)有什麼問題?

我不確定是誰來構建一個架構來實現這一切。我已經通過調用

var app = Myapp(); 
app.toggleButton(Y.all('.toggle-buttons'),{'text1':'TOGGLE_ME','text2':'TOGGLED_ME'}); 

這一切工作採取以下辦法

var Myapp = function(){ 

    this.toggleButton(node,config) 
    { 
     YUI().use(....,function(Y){ 
      //code to convert NODE into a toggle button; 

     }); 
    } 
    return this; 
}; 

在我的應用程序,然後只是將所有的按鈕進入切換按鈕。但我想從更有經驗的開發人員那裏瞭解這種方法是否存在根本性錯誤。

這是一個很好的使用JavaScript的方法嗎?

回答

3

return this;

這是因爲unneccesary構造函數默認返回this

var app = Myapp();

你忘了打電話給new Myapp()沒有new關鍵字this將是窗口對象,您可以有效地寫入全球範圍。

0

有一個在你的代碼的一個基本問題:

var MyApp = function(){ 

    this.toggleButton(node,config) 
    { 
    ... 

你不定義MyApp功能。相反,每次實例化時,都會嘗試調用toggleButton。它應該失敗,因爲該功能是不確定


在你的情況下,類定義並且不需要實例化,因爲MyApp被用來作爲一種實用工具。

您可以定義MyApp作爲靜態對象:

var MyApp = { 
    toggleButton: function toggleButton() { 
     // your code 
    } 
}; 

,您可以通過在任何地方使用它:

MyApp.toggleButton();