js利用闭包封装自定义模块的几种方法

Posted lonecloud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js利用闭包封装自定义模块的几种方法相关的知识,希望对你有一定的参考价值。

1.自定义模块:

  具有特定功能的js文件

  将所有的数据和功能都封装在一个函数的内部

  只向外暴露一个包含有n个方法的对象或者函数

  模块使用者只需要通过模块暴露的对象调用方法来实现相对应的功能

1.利用函数方法自调用

/**
 * Created by lonecloud on 2017/9/10.
 */
(function (window) {
    var DEBUG="debug"
    /**
     * 打印日志
     * @param args
     */
    function log(args) {
        console.log(args)
    }

    /**
     * debug 利用闭包
     * @param args
     */
    function debug(args) {
        console.log(DEBUG+args);
    }
    /**
     * 编写
     * @param args
     */
    function write(args) {
        document.write(args)
    }
    window.$ = {
        log: log,
        write: write,
        debug:debug
    }
})(window);
//调用
$.write("dda")
$.debug("dsds")
$.log("dsqwd")

 2.函数声明后进行模块化

/**
 * Created by lonecloud on 2017/9/10.
 */
function Common(window) {
    var DEBUG = "debug"

    /**
     * 打印日志
     * @param args
     */
    function log(args) {
        console.log(args)
    }

    /**
     * debug 利用闭包
     * @param args
     */
    function debug(args) {
        console.log(DEBUG + args);
    }

    /**
     * 编写
     * @param args
     */
    function write(args) {
        document.write(args)
    }

    return {
        log: log,
        debug: debug,
        write: write
    }
}
//调用
var common=Common(window);
common.log("121")
common.debug(12232)
common.write("dadsa")

 

以上是关于js利用闭包封装自定义模块的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

理解JS 模块化

利用Scala进行自定义排序的几种方法

第184天:js创建对象的几种方式总结

24 jQuery——对象的封装闭包匿名自调用函数

js中面向对象(创建对象的几种方式)

自定义线程池的几种方案