当我加载页面时,我调用“addEventListener”来初始化“deviceReady”,在addEventListener中我想调用类中的函数。请参阅以下示例。
示例类
var HomePageModel = function(){
this.initModule = function(){
//doing some process;
};
};
我想在 addEventListener 中调用上面的 initModule 函数。
像
document.addEventListener("deviceready", HomePageModel.initModule, false);
是否可以在类??? ???
之外的eventlistener中调用类函数答案 0 :(得分:6)
您首先需要一个实例:
document.addEventListener("deviceready", new HomePageModel().initModule, false);
请注意,如果您的initModule
方法使用this
,则无效,因为this
将设置为触发事件的元素。为避免这种情况,您可以创建一个绑定到固定值this
的新函数:
var model = new HomePageModel();
var boundFn = model.initModule.bind(model);
document.addEventListener("deviceready", boundFn, false);
最后,你总是可以使用包装器函数作为事件处理程序,并从那里调用你的模块初始化器(不知道为什么你没有考虑过):
document.addEventListener("deviceready", function(){
new HomePageModel().initModule();
}, false);