2011-02-14 50 views
0

我有一个创建自定义选择框的类。它的工作正常,我希望这个类更通用。 这些选择框也有“onchange”事件监听器。在javascript中删除类依赖关系

现在在调用onchange方法之前,我想进行一些复杂的测试。而这些测试在另一个类中定义。

为了实现通用性,我不希望我必须初始化SelectBox类中的新类。 什么应该是解决这个问题的最好方法?并且执行测试所需的数据在SelectBox类中。

感谢

+0

我们帮不了你,除非你确实告诉我们代码 - 简单地描述它通常在这种情况下不够具体。 –

回答

0

那么,如果这些功能不依赖于新的初始化对象特定变量,那么你可以让这些功能集成到公共静态的

var AnotherClass = (function(){ 
    // this is a public static method 
    this.complexTask = function(){ alert('I am too complex for my shirt'); } 

    return function(){ 
    // initialization-dependent-stuff 
    } 
})(); 

var SelectBoxes = (function(){ 
    return function(){ 
     this.onChange = function(){ 
     AnotherClass.complexTask(); 
     } 
    } 
}); 

做这个,你不必初始化任何东西,再加上你可以按你想要的方式使用你的函数。

另外,如果您不能使用的public static方法,那么你应该考虑通过该类作为参数的情况下,虽然上述方法是较受欢迎的