最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • new Function 和 with -自我记录

    正文概述 掘金(行动派_)   2020-12-17   491

          学习vue2源码渲染这块的过程中,首先使用正则将html字符串解析成ast语法树,随后将ast转变成了js语法,这里面使用了模板引擎,(所有模板引擎靠的是new function和with)

          那么我们来看看new Function

    let func = new Function ([arg1, arg2, ...argN], functionBody);
    

    创建的时候首先传入的是参数,然后在传入执行的函数体

    let test = new Function('v', 'd', 'return v + d');
    
     test(1, 2); // 3
    

    也可以直接传入函数体(传入的是一个字符串)

    let test_1 = new Function('alert("function")');
    

    new Function可以将传入的字符串变为一个可执行的函数

    而vue中这么做是创建了一个和全局平行的作用域,可以隔离作用域

        with语法

    扩展一个语句的作用域链。

    with (expression) {
        statement
    }
    

    简单点说就是隔离作用域,让statement去expression取值,

          mdn中的介绍比较具体,

    'with'语句将某个对象添加到作用域链的顶部,如果在statement(函数内部的使用)中有某个未使用命名空间的变量,跟作用域链中的某个属性同名,则这个变量将指向这个属性值。如果沒有同名的属性,则将拋出ReferenceError异常。


    起源地下载网 » new Function 和 with -自我记录

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元