美文网首页
Module模式总结

Module模式总结

作者: praycis | 来源:发表于2018-08-28 09:34 被阅读0次
    基本特征

    1.模块化,可重用
    2.封装了变量和function,和全局的namaspace不接触,松耦合
    3.只暴露可用public的方法,其它私有方法全部隐藏

    匿名闭包
    (function () {
        // ... 所有的变量和function都在这里声明,并且作用域也只能在这个匿名闭包里
        // ...但是这里的代码依然可以访问外部全局的对象
    }());
    
    引用全局变量
    (function ($, YAHOO) {
        // 这里,我们的代码就可以使用全局的jQuery对象了,YAHOO也是一样
    } (jQuery, YAHOO));
    
    基本的module模式
    var blogModule = (function () {
        var my = {}, privateName = "pray-lee";
    
        function privateAddTopic(data) {
            // 这里是内部处理代码
        }
    
        my.Name = privateName;
        my.AddTopic = function (data) {
            privateAddTopic(data);
        };
    
        return my;
    } ());
    
    module模式的拓展

    Module模式的一个限制就是所有的代码都要写在一个文件,如果想增加拓展方法和属性,可以把自己传进去

    var blogModule = (function (my) {
        my.AddPhoto = function () {
            //添加内部代码  
        };
        return my;
    } (blogModule)); 
    
    松耦合拓展
    var blogModule = (function (my) {
    
        // 添加一些功能   
        
        return my;
    } (blogModule || {}));  
    
    紧耦合拓展 (可以进行函数重载,把原先的赋值给一个新变量,进而重写自己)
    var blogModule = (function (my) {
        var oldAddPhotoMethod = my.AddPhoto;
    
        my.AddPhoto = function () {
            // 重载方法,依然可通过oldAddPhotoMethod调用旧的方法
        };
    
        return my;
    } (blogModule));
    

    相关文章

      网友评论

          本文标题:Module模式总结

          本文链接:https://www.haomeiwen.com/subject/zgxfwftx.html