猿问

1,闭包与模块化,请问我这段代码算是模块化吗。2,立即执行函数我实在不清楚他的意义在哪

function module(){


var a = 1;

var b = 1;

function add(){

    console.log(a+b)

}

function dec(){

    console.log(a-b)

}

return {add:add,dec:dec}

}

var mod = module();

mod.add();

mod.dec();

立即执行函数可以让变量私有化,避免变量污染。那么就上面的代码而言,存在变量污染这个问题吗,试了半天也感觉不出来啊。那么用立即执行函数里嵌套闭包来实现模块化的方式,它的意义在哪里呢


开满天机
浏览 535回答 2
2回答

慕码人8056858

个人认为模块化的意义在于解耦、复用、和安全的上下文感觉和函数式编程里面纯函数的概念类似:相同的输入总会得到相同的输出;不会改变其他变量等等你这个 module 勉强也算:无论在什么地方复用 add dec 方法都行iife 的意义也在于生成单独的命名空间,不污染其他变量
随时随地看视频慕课网APP
我要回答