我的JavaScript架构(YUI3)有什么问题?

我的JavaScript架构(YUI3)有什么问题?,javascript,yui3,Javascript,Yui3,我正在编写一个web应用程序,它使用YUI3满足所有JS需求。我需要的功能,如工具提示,其内容由AJAX查询确定的工具提示,切换按钮等 我不确定是谁构建了一个架构来实现这一切。我采取了以下方法 var Myapp = function(){ this.toggleButton(node,config) { YUI().use(....,function(Y){ //code to convert NODE into a toggle bu

我正在编写一个web应用程序,它使用YUI3满足所有JS需求。我需要的功能,如工具提示,其内容由AJAX查询确定的工具提示,切换按钮等

我不确定是谁构建了一个架构来实现这一切。我采取了以下方法

var Myapp = function(){

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

        });
    }
    return this;
};
在我的应用程序中,我通过调用

var app = Myapp(); 
app.toggleButton(Y.all('.toggle-buttons'),{'text1':'TOGGLE_ME','text2':'TOGGLED_ME'});
所有这些都有效。但我想从经验丰富的开发人员那里了解这种方法是否存在根本性的错误


这是使用JavaScript的好方法吗

返回这个

这是不必要的,因为函数构造函数在默认情况下返回
This

var-app=Myapp()


您忘记调用
new Myapp()
而没有
new
关键字
这将是窗口对象,您正在有效地写入全局范围。

您的代码中存在一个基本问题:

var MyApp = function(){

    this.toggleButton(node,config)
    {
     ...
您没有为
MyApp
定义函数。相反,每次实例化toggleButton时都会尝试调用它。它应该失败,因为函数未定义


在您的情况下,不需要类定义和实例化,因为
MyApp
被用作实用程序

您可以将
MyApp
定义为静态对象:

var MyApp = {
    toggleButton: function toggleButton() {
        // your code
    }
};
您可以通过以下方式在任何地方使用它:

MyApp.toggleButton();