本文共 1377 字,大约阅读时间需要 4 分钟。
比如有一个js叫demo.js,那么我们可以在js里这样写:
var demo = {}
这样做的目的是将整个js当成一个对象,这样暴露在外的全局变量就只有demo这一个命名,不像我们平常写直接写很多函数,这都是对全局空间的一种污染,一旦项目中别人也取了同样的名称,那么就容易出问题了。
function xxx1{}function xxx2{}function xxx3{}
同时为了方便维护管理js,还可以对demo内部进行划分模块,可以按照页面划分,也可以按照具体功能模块划分。
var demo = {
page1: { setSlide:function{ //这里去进行轮播图的相关设置 } },
page2: { setSlide:function{ //这里去进行轮播图的相关设置 } }
}
可以看到,如果单纯按照页面去划分,那么页面与页面的之间的js可以分离的很清楚,但是也有一个弊端,即如果两个甚至多个页面拥有相同的功能,那么会需要去调用其它页面的js,这样不是很利于维护。
var demo = {
// 将公用的功能抽离
setSlide: function{ // do something },
page1: { _setSlide: function{ // 直接调用通用方法 demo.setSlide; } },
page2: { _setSlide: function{ // 直接调用通用方法 demo.setSlide; } }
}
var demo = {
// 将公用的功能抽离
setSlide: function{ // do something },
page1: { Init: function{ this._setSlide.verify; },
_setSlide: function{
// 直接调用通用方法 demo.setSlide; //还可以做其他事情 ...... // 返回this,那么就能实现链式调用了 return this; },
verify:function{ //做些事情 ...... }
},
page2: { Init: function{ this._setSlide; },
_setSlide: function{ // 直接调用通用方法 demo.setSlide; //还可以做其他事情 }
}
}
可以看到,我们在每个页面模块里增加了一个Init方法,我们可以叫它页面初始化方法,它的作用就是集中调用其它方法,相当于这个页面的入口,这样我们只要看到这个方法就大概能知道我们调用了哪些方法了,而不需要在页面里去分别的调用。维护起来更方便些。
关于在工作中使用单例模式的方法就说到这了,有不足的地方欢迎大神指点,有不懂的地方欢迎留言。
转载地址:http://edggi.baihongyu.com/