在javascript中将父方法包装到私有函数中时如何调用方法
我不确定我的问题措辞是否正确,但无论如何 我正在使用iscroll,并将iscroll init调用包装在一个私有函数中,以供以后使用。这就是我所拥有的:在javascript中将父方法包装到私有函数中时如何调用方法,javascript,iscroll4,Javascript,Iscroll4,我不确定我的问题措辞是否正确,但无论如何 我正在使用iscroll,并将iscroll init调用包装在一个私有函数中,以供以后使用。这就是我所拥有的: Namespace.iscroll = function () { var myScroll; myScroll = new iScroll('mainContent-wrap', { hScrollbar: false }); document.addEvent
Namespace.iscroll = function () {
var myScroll;
myScroll = new iScroll('mainContent-wrap', {
hScrollbar: false
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', Namespace.iscroll, false);
};
我使用Namespace.iscroll()在需要的任何页面上调用iscroll代码>
我的问题是,现在我想使用myScroll.refresh()刷新iScroll代码>,或使用iScroll文档中描述的设置超时
功能
由于我将原始的init调用包装在一个私有函数中,因此如何在其上运行刷新和其他方法(如destroy?如果在运行iscroll
函数后试图访问myScroll
变量,答案是您不能。它在那一点上消失了。你必须把它保存在别的地方,这样你才能找到它。一个想法是将其放在与iscroll
相同的对象上,如下所示:
Namespace.iscroll = function () {
Namespace.myScroll = new iScroll('mainContent-wrap', {
hScrollbar: false
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', Pelau.iscroll, false);
};
Namespace.myScroll.refresh();
然后,您可以像这样执行refesh:
Namespace.iscroll = function () {
Namespace.myScroll = new iScroll('mainContent-wrap', {
hScrollbar: false
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', Pelau.iscroll, false);
};
Namespace.myScroll.refresh();
关键是将myScroll存储在某个持久的公共位置,而该位置不是临时的局部变量