JS高级——沙箱

Posted 站错队了同志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS高级——沙箱相关的知识,希望对你有一定的参考价值。

基本概念

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高级——沙箱的主要内容,如果未能解决你的问题,请参考以下文章

JS高级---沙箱小案例

JavaScript笔试题(js高级代码片段)

从零开始学 Web 之 JS 高级apply与call,bind,闭包和沙箱

JS高级——面向对象方式解决tab栏切换问题

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrackonTriggeronInvalidate副作用的刷新时机`watch` pre)(代码片段