`

javascript编程技巧_模块化编程(匿名函数)

 
阅读更多

参考:http://blog.csdn.net/lxp1021/article/details/7395461

 

自己接触和学习javascript也有3~4年了,看过几本dom编程的数据,在实际的项目开发中针对js的使用还是非常普遍的,而牵扯到项目大部分都是对框架的使用,jquery ,jquery ui,jquery easyui ,真正牵扯到前后台数据的交互,数据算法等高级编程知之甚少,甚至很少用,如果你问我你知道js什么知识呢?我可能智能说知道点jquery的技巧,知道点dom原理,说编程都谈不上,所以为了对的起自己的职业对得起自己的老板,需要把某一些技巧作为编程习惯固定下来,免于以后有人问我你知道什么?我可以喷点模块化编程云云,听起来很高端,其实很简单,废话少说,让我们思考一下模块化编程怎么实现的:

1.模块化编程的原因:

先上代码:

 

[javascript] view plaincopy
  1. var age="34";  
  2. var name="alex";  
  3. var state="single";  
  4. function CreatMember(){  
  5.     //[...]  
  6. }  
  7. function getMemberText(){  
  8.     //[...]  
  9. }  

 

以上内容定义了三个全局变量和两个全局方法,在以后的编程中不能出现相同的变量和方法,

2.在实际的项目开发中,那我们怎么来规避这种问题办法呢?我们可以把这些变量和方法写在一个匿名函数里,使用匿名函数的特性来执行这些变量和方法,匿名函数的写法:

 

[javascript] view plaincopy
  1. var newFun =function(){  
  2. var age="34";  
  3. var name="alex";  
  4. var state="single";  
  5. function CreatMember(){  
  6.     //[...]  
  7. }  
  8. function getMemberText(){  
  9.     //[...]  
  10. }  
  11. }();  

简化写法:

[javascript] view plaincopy
  1. (function(){  
  2. var age="34";  
  3. var name="alex";  
  4. var state="single";  
  5. function CreatMember(){  
  6.     //[...]  
  7. }  
  8. function getMemberText(){  
  9.     //[...]  
  10. }  
  11. CreatMember();  
  12. getMemberText();  
  13. })();  

3.那么我们想调用匿名函数里的变量和方法怎么办?我们需要把我们的匿名函数稍微改动一下:

[javascript] view plaincopy
  1. var newFun =function(){  
  2. var age="34"  
  3. var name="alex"  
  4. var state="single"  
  5. return{  
  6. CreatMember:function (){  
  7.     //[...]  
  8. },  
  9. getMemberText:function(){  
  10.  //[...]}  
  11. }();  
  12. newFun.CreatMember();  
  13. newFun.getMemberTextr();  

 

4.结合自己对jquery的理解,在开发组件的时候使用这个闭包模块化编程的编程思想,来实现自定义插件与 jquery的插件不发生冲突:

 

 

[javascript] view plaincopy
  1. (function($){  
  2. //[...]  
  3. })(jQuery);  


5.如果嫌比较麻烦可以使用一下简写方法:

[javascript] view plaincopy
  1. var newFun=function(){  
  2. var age="34";  
  3. var name="alex";  
  4. var state="single";  
  5. function CreatMember(){  
  6.   //[...]  
  7. };  
  8. function getMemberText(){  
  9. //[...]  
  10. }  
  11. return{  
  12. creat: CreatMember,  
  13. get:getMemberText  
  14. }  
  15. }();  
  16. newFun.creat();newFun.get();  

 

 

分享到:
评论

相关推荐

    Javascript模块化编程详解

    模块化编程是一种非常常见Javascript编程模式。它一般来说可以使得代码更易于理解,但是有许多优秀的实践还没有广为人知。 基础 我们首先简单地概述一下,自从三年前Eric Miraglia(YUI的开发者)第一次发表博客...

    JavaScript王者归来part.1 总数2

     6.4.1 匿名的函数   6.4.2 函数引用   6.4.3 函数参数和函数返回值及其例子   6.4.4 高级用法--闭包作为局部域与延迟求值   6.5 高级抽象--Function类型和函数模版   6.5.1 动态创建函数--一个利用...

    requirejs-learnt:关于学习requirejs和示例

    Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。 Javascript不是一种模块化编程语言,它不支持"类"(class),就不用谈论模块了。...

    javascript高级教程

     Javascript的一个重要功能就是基于对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。  一组包含数据的属性和对属性中包含数据进行操作的方法,称为对象。比如要设定...

    python入门到高级全栈工程师培训 第3期 附课件代码

    04 匿名函数 05 函数式编程介绍 06 函数式编程尾递归调用优化 07 map函数 08 map函数filter函数 09 reduce函数 10 map reduce filter总结 11 内置函数part1 第17章 01 课前吹牛 02 zip方法 03 max和min高级使用 04...

    ASP.NET.4揭秘 卷2

    n425 基于自定义函数变化的输出缓存 n426 设置缓存位置 n427 创建页面输出缓存文件依赖 n428 使用编程方式设置页面输出缓存过期 n429 以编程方式操作页面输出缓存 n4210 创建页面输出缓存配置 n43 使用部分页面缓存 ...

    计算机应用技术(实用手册)

    内存模块上的EEPROM (只读存储器) 储存有关模块的重要参数信息,例如内存类型、大小、速度、电压接口及模块储存区域。 CAS Latency Time: 这个项目可控制DRAM读取指令与数据成为真正可用的时间之间的延迟时间。...

Global site tag (gtag.js) - Google Analytics