立即执行函数的使用
将js分成不同的几个模块后,然后使用文件引入,但是会出现问题:如果使用var 声明变量,那么就会成为全局变量,这样容易覆盖.
在ES6之前,只有函数里面才有局部变量....所以如果想用局部变量,解决方法是把它放到一个函数中,然后立即执行,这样这个函数内部的变量就是局部变量.也不会被相同名字的全局变量覆盖.
?...不加感叹号就会语法错误,不会执行.所以得加一个感叹号,取反,就会运行后面的代码,执行后面的函数.虽然改变了返回值,但是我们不需要返回值.所以改变了也无所谓
所以接下来我们将所有自己分离出来的单个js文件...闭包作用:
用来 隐藏数据细节 (不告诉你多少岁但是你可以让他涨一岁,隐藏了age 的细节和name)
可以用来 做访问控制 (只能访问到age,无法访问到name)
如果没有立即执行函数来模块化,那么这个闭包毫无意义...this是转过来了,也是对象本身
继续优化,分离代码
如果我们要做其他的事情,比如把激活和不激活这个导航分离,不要写在bindEvents里了,继续在对象里添加操作的函数
?