js模块化

在js中借助匿名函数实现功能的模块化

下面实现一个计算器模块

计算器得有 加(add) 减() 乘(multi) 除(diliver) 的功能,并且它们应该以  xx.add(1,2)的形式调用

废话不多说,上代码

var cal = (function() {
    return {
        'add':function(a,b) {
            return a+b;
        },
        'multi':function(a,b) {
            return a*b;
        }
    };
})();

console.log(cal.add(1,2));
console.log(cal.multi(3,4));

cal模块实现了加和减

通过cal.add(1,2),cal.multi(1,2)调用cal模块的方法。

还有一种更清晰的写法,like this

var cal = (function() {
    var add = function(a,b) {
            return a+b;
        },
        multi = function(a,b) {
            return a*b;
        };
        
    return {
        'add':add,
        'multi':multi
    };
})();

console.log(cal.add(1,2));
console.log(cal.multi(3,4));

或许你还想在模块定义的时候初始化某些东西

var attr = 'Hello World!';
var cal = (function(attr) {
    var add = function(a,b) {
            return a+b;
        },
        multi = function(a,b) {
            return a*b;
        },
        getAttr = function() {
            return this.attr;
        };
        
    return {
        'add':add,
        'multi':multi,
        'attr':attr,
        'getAttr':getAttr
    };
})(attr);

console.log(cal.add(1,2));
console.log(cal.multi(3,4));
console.log(cal.getAttr());

很简单吧。

原文地址:https://www.cnblogs.com/mtima/p/3095947.html