krr*_*r25 3 javascript prototype event-handling javascript-events
当我加载页面时,我调用"addEventListener"来初始化"deviceReady",在addEventListener中,我想调用类中的函数.请参阅以下示例.
示例类
var HomePageModel = function(){
this.initModule = function(){
//doing some process;
};
};
Run Code Online (Sandbox Code Playgroud)
我想在addEventListener中调用上面的initModule函数.
喜欢
document.addEventListener("deviceready", HomePageModel.initModule, false);
Run Code Online (Sandbox Code Playgroud)
是否可以在一个类外的eventlistener中调用类函数?
您首先需要一个实例:
document.addEventListener("deviceready", new HomePageModel().initModule, false);
Run Code Online (Sandbox Code Playgroud)
请注意,如果您的initModule方法使用this,它将无法工作,因为this将设置为触发事件的元素.为避免这种情况,您可以创建一个绑定到固定值的新函数this:
var model = new HomePageModel();
var boundFn = model.initModule.bind(model);
document.addEventListener("deviceready", boundFn, false);
Run Code Online (Sandbox Code Playgroud)
最后,您始终可以使用包装器函数作为事件处理程序,并从那里调用模块初始化程序(不确定为什么您没有考虑过):
document.addEventListener("deviceready", function(){
new HomePageModel().initModule();
}, false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |