1. 程式人生 > >JS高級——沙箱

JS高級——沙箱

添加屬性 在外 什麽 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){

        var
itcast = { getEle:function () { } } win.itCast = win.$ = itcast; })(window) </script>

JS高級——沙箱