MVC:Model View Controller
MVC只是一种组织代码的形式或思想
把写在html里的js代码按功能不同,用文件分类,文件名为功能简要描述,即为模块化。例:
模块化
立即执行函数的使用 !function( ) { 代码 }.call( )
在ES5中,只有函数有局部变量,当我们不想要全局变量,只使用局部变量时,声明一个function xxx,然后xxx.call( ),这时,xxx是全局函数(变量),在去掉一个全局变量的同时又引入一个全局变量,没有意义。所以我们使用上面的立即执行函数 !function( ) { 代码 }.call( )。
作用:隔离作用域
(注:用花括号 { 代码 }里面的var变量会变量提升,没用;function( ) { 代码 }.call( )会报错。这样!function( ) { 代码 }.call( )使用时返回值会取反,在不用返回值时推荐这种写法)
模块化时,一般用局部变量
闭包的使用
立即执行函数使得 (person)对象无法被外部访问,闭包使得匿名函数可以操作(person),window.xxx 保存了匿名函数的地址,任何地方都可以使用 window.xxx。所以任何地方都可以使用 window.xxx 操作(person),但是不能直接访问(person)。
用途:对数据隐藏细节,访问控制
(注:一般和立即执行函数一起使用,否则无意义)
V:view,指的就是HTML(用户看得见的)
控制HTML
M:model,操作数据部分。
数据交互
C:controller,业务逻辑部分,担任 V 和 M 的桥梁