JS设计模式:模块模式

模块模式的关键在于对象字面量和闭包。

对象字面量封装模块,闭包实现私有和公有。它提供了一种包装混合公有/私有方法和变量的方式,防止其泄露至全局作用域。为我们提供了一个屏蔽处理底层事件逻辑的整洁解决方案,同时只暴露一个接口供其他部分使用。该模式的特点是返回一个对象而不是一个函数,除此之外非常类似一个立即调用的函数表达式。

由于闭包的存在,声明的变量和方法只在该模式内部可用。但在返回对象上定义的变量和方法,则是外部可见的。

var myNamespace=(function(){

    // 私有计数器变量
    var myPrivateVar=0

    // 记录所有参数的私有函数
    var myPrivateMethod=function(foo){
        console.log(foo)
    }
    
    return {
        // 公有变量
        myPublicVar: "foo",
        // 公有函数
        myPublicFunction: function(bar){
            myPrivateVar++
            myPrivateMethod(bar)
        }
    } 
})()

myNamespace.myPublicVar // "foo"
myNamespace.myPrivateVar // undefined:因为私有变量没有暴露在公有的API里

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值