在示例的名称空间中创建类时。使用js原型框架命名空间
em.components.grid
em.components.grid.Popup = Class.create(
{
initialize: function(params){
...
},
show:function(){
// create or show
}
});
这是否意味着其他类中,如果我使用上面的命名空间路径我有机会获得演出方法。
// Another class in prototype
em.components.grid.Popup.show();
或者您尝试访问show的新类是否必须位于相同的命名空间中。
命名空间有点像其他语言的软件包。所以通过给定一个命名空间,你可以将所有与例如网格有关的类保存在一个名字空间中,并且可能的其他类与其他名字空间中的网格无关。
更新 这引起了其他2个问题,可以说,我创造我的课像上面相同的命名空间。然后在另一个js文件中实例化类
var popup = new em.components.grid.Popup()
然后popup会是一个全局变量而不是?如果可能的话,我不希望在我的文件中包含这些内容。看到我已经去了给它一个独特的名字空间的所有麻烦。然后在js文件的其他地方的全局变量上创建该类的一个实例。
所以在弹出的情况下,最好是将其设置为全局,否则最好在翻转事件中将其创建并在卷展事件中将其删除。
//pseudo code
$$('domelementClass').observe('mouseover', function(event) {
var popup= new em.components.grid.Popup(event.target);
})
我在上面看到的问题是我没有参考在卷展栏上将其删除。
$$('domelementClass').observe('mouseout', function(event) {
popup.remove();
})
谁能解释这样对我? – Chapsterj
任何人都可以帮忙吗?我更新了我的问题,以帮助更详细地解释。 – Chapsterj