两个模块交流,第一个模块做初始化,然后第二个模块进行赋值,怎么办,用window,所有人都能访问
新建两个模块.js/module-1.js
image.png
都存了匿名对象的地址
可以用person和window,person,访问
2.闭包。不想直接操作person,只调用frankgrowup函数
image.png
始终不知道person的全部信息,只有允许你的操作,这样module1有了个掌控比如没法修改age到负一,因为访问不到只能growup
image.png
匿名函数用了外面的变量,person就叫做闭包,对数据隐藏细节访问控制,外面需要立即执行函数隔离作用域,
1,立即执行函数使得person无法被外部访问
2,闭包使得匿名函数可以操作person
3,window.frankGrowUp 保存了匿名函数地址
4,任何地方都可以使用window,fgu
推论,任何地方都可以使用window,fgu操作person,但是不能直接访问person
image.png
网友评论