- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Javascript模块模式分析.pdf
javascript设计模式:Javascript模块模式分析
疯狂代码 / ĵ http://Javascript/Article44747.html
Douglas Crockford已经传授了个有用单例模式(singleton pattern)实现此规则我认为他模式有益于你基
于YUI那些应用Douglas叫它模块模式(module pattern)它是如下工作:
创建个命名空间对象:如果你使用YUI可以用YAHOO.思路方法: YAHOO.(myProject);这分配了个空
myProject对象是YAHOO个成员(如 果myProject已存在话则不会被覆盖)现在我们可以开始添加
YAHOO.myProject成员
对你命名空间对象分配个匿名返回值:
YAHOO.myProject.myModule = function {
{
myPublicProperty: 我作为YAHOO.myProject.myModule.myPublicProperty被访问;
myPublicMethod: function {
YAHOO.log(我作为YAHOO.myProject.myModule.myPublicMethod被访问);
}
};
}; // 这个括号导致匿名被执行且返回
注意有闭合大括号和紧接着括号最后行—这种符号导致了匿名立即执行返回包含myPublicProperty和
myPublicMethod对象只要这个匿名返回返回对象就作为YAHOO.myProject.myModule被访问
在匿名中在返回语句前加入“私有”思路方法和变量到目前为止我们只是将myPublicProperty和
myPublicMethod直接分配到YAHOO.myProject.myModule中此外当我们在返回语句的前放置些代码时这个
模式还支持被增加效用
YAHOO.myProject.myModule = function {
//“私有”变量:
var myPrivateVar = “我仅能在YAHOO.myProject.myModule内被访问”;
//私有思路方法:
var myPrivateMethod = function {
YAHOO.log(”我仅能在YAHOO.myProject.myModule内被访问”);
}
{
myPublicProperty: “我作为YAHOO.myProject.myModule.myPublicProperty能被访问”
myPublicMethod: function {
YAHOO.log(”我作为YAHOO.myProject.myModule.myPublicMethod能被访问”);
//在myProject,我能访问私有变量和思路方法
YAHOO.log(myPrivateVar);
YAHOO.log(myPrivateMethod);
//myPublicMethod原生作用域是myProject我们可以用“this”来访问公共成员
YAHOO.log(this.myPublicProperty);
}
};
};
在上面代码中我们从个匿名返回有两个成员个对象在YAHOO.myProject.myModule内部可以分别用
this.myPublicProperty和this.myPublicMethod来访问在YAHOO.myProject.myModule外部公共成员可以
用YAHOO.myProject.myModule.myPublicProperty和YAHOO.myProject.myModule.myPublicMethod来
访问
私有变量myPrivateProperty和myPrivateMethod只能被匿名本身或返回对象成员访问尽管匿名会立即执行和
终止但它们依然是保留着凭借闭包(closure)力量——通过个局部变量在这个返回后是保留规则只要
YAHOO.myProject.myModule需要它们我们两个私有变量就不会被销毁
实战这个模式让我们来看看这个模式个常见应用案例假设你有个列表列表上些项可以被拖拽应用拖拽项上有拖
拽CSS类
文档评论(0)