zoukankan      html  css  js  c++  java
  • 封装(模块化)

    1 闭包实现封装

    var oj= (function(){  
        var _age= 0;  
        var func1= function(){  
          return _age+1; 
        };  
        var func2= function(){  
          return _age+2;  
        };  
        return {  
          m1 : func1,  
          m2 : func2  
        };  
    })(); 

    2 为上面的方法添加新方法

    var obj =(function (f){  
        f.func3= function () {  
          return '方法模式';
        };  
        return f;//方便方法连续调用  
    })(oj);//新模块obj继承oj的方法,并增加一个
    alert(obj.m1());
    alert(obj.m2());
    alert(obj.func3());

    3 上边的可能在oj没有加载,就执行obj模块,所以可以这样

    var obj =(function (f){  
        f.func3= function () {  
          return '方法模式';
        };  
        return f;//方便方法连续调用  
    })(window.oj|| {});

    4 输入全局变量:独立性是模块的重要特点,模块内部最好不与程序的其他部分直接交互。为了在模块内部调用全局变量,必须显式地将其他变量输入模块。

       这是jQuery框架的源码,将window对象作为参数传入,这样做除了保证模块的独立性,还使得模块之间的依赖关系变得明显。

    (function(window, undefined ) {  
      ……  
    })(window ); 
  • 相关阅读:
    240. Search a 2D Matrix II
    442. Find All Duplicates in an Array
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    poj 3616
    cf 337 div2 c
    poj 2385
    poj 2229
    uvalive 3231
    Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
  • 原文地址:https://www.cnblogs.com/by-dxm/p/6420522.html
Copyright © 2011-2022 走看看