我有一个创建自定义选择框的类。它的工作正常,我希望这个类更通用。 这些Selectbox还具有“onchange”事件监听器。
现在在调用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();
}
}
});
通过这样做,你不必初始化任何东西,而且你可以按照你想要的方式使用你的功能。
或者,如果您不能使用公共静态方法,那么您应该考虑将该类的实例作为参数传递,尽管上面的方法是优先的