JS高級——沙箱
阿新 • • 發佈:2018-01-24
添加屬性 在外 什麽 round func pos 獨立 原則 pre
基本概念
1、沙箱:與外界隔絕的一個環境,外界無法修改該環境內任何信息,沙箱內的東西單獨屬於一個世界
2、蘋果手的app使用的就是沙箱模式去運行,隔離app的空間,每個app獨立運行
js沙箱基本模式
1、在沙箱中將所有變量的定義放在最上方
2、中間就放一些邏輯代碼
3、最後,如果需要,就給外界暴露一些成員(通過window.的方式,給window添加屬性)
<script> (function(){ var sum = 0; for(var i = 1; i<=100;i++){ sum+=i; } console.log(sum);//5050 })(); </script>
為什麽要用立即調用的方式
1、因為不會再外界暴露任何的全局變量,但是又可以形成一個封閉的空間
jQuery當中的沙箱模式
1、如果需要在外界暴露一些屬性或者方法,就可以將這些屬性和方法加到window全局對象上去
2、window全局對象不可以直接引用,因為直接引用會破壞沙箱原則,可以選擇使用傳參的形式將 window對象 傳入沙箱內
3、此時沙箱內使用window對象的時候,不會再去全局搜索window對象,而使用的就是沙箱內部定義的形參
<script> (function(win){ varitcast = { getEle:function () { } } win.itCast = win.$ = itcast; })(window) </script>
JS高級——沙箱