在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());
很简单吧。