js高级——沙箱

1.沙箱:与外界隔绝的一个环境,外界无法修改该环境内的任何信息(沙箱内的东西单独属于一个世界)
(1)360沙箱模式:将软件和操作系统进行隔离以达到安全的目的
(2)JS中的沙箱模式:还是通过函数来实现的
    <1>沙箱模式的基本模型:自调用函数
        ( function (){
            var a = 123 ; //外面并不能访问到这个a
        })() ;
    <2>沙箱里面的变量对外面没有影响
    <3>为什么要使用立即执行函数表达式IIFE(其实就是匿名函数)来写沙箱:因为立即IIFE不会在外界暴露任何的全局变量,但是又可以形成一个封闭的空间,刚好可以实现沙箱模式
    <4>在沙箱中将所有变量的定义放在最上面,然后中间就放一些逻辑代码
    <5>js中沙箱模式的实现原理:函数可以构建作用域,上级作用域不能直接访问下级作用域中的数据
(3)jquery中的沙箱模式
( function (win){
    var itcast = { //这个itcast是在沙箱里面的,外面没法用,那么jquery是怎么实现在沙箱里面写$符被外界使用到的呢?
        getEle : function (){

        }
    } ;
    window . ircast = window . $ = itcast ; //把itcast设置为window全局对象的一个属性
})( window ) ; //把全局变量当做参数

itcast. getEle () ;

    <1>如果需要在外界暴露一些属性/方法,就可以将这些属性/方法加到window全局对象上去,但是这个window全局对象不可以直接引用,因为直接引用会破坏沙箱原则,所以选择使用传参的形式将window对象传入沙箱内。此时沙箱内使用window对象的时候不会再去全局搜索window对象而使用的是沙箱内部定义的形参
    <2>如果需要,就给外界暴露一些属性/方法(通过window)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值