我的JavaScript架构(YUI3)有什么问题?
我正在编写一个web应用程序,它使用YUI3满足所有JS需求。我需要的功能,如工具提示,其内容由AJAX查询确定的工具提示,切换按钮等 我不确定是谁构建了一个架构来实现这一切。我采取了以下方法我的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
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();