zoukankan      html  css  js  c++  java
  • 模拟块级作用域和私有作用域

      JavaScript中没有直接的块级作用域,然而,可以使用匿名函数表
    达式来模拟块级作用域,任何定义在匿名函数中的变量在匿名函数执行
    完之后都将被销毁,在匿名函数外访问这些变量将会产生错误。如:

         
    functionoutputNumbers(count)
         
    {
            
    (function()
            
    {
               
    for(vari=0;i<count;i++)
               
    {
                  
    alert(i);
               
    }
            
    })();
            
    alert(i);   //causes an error
          }

      
    匿名函数表达式提供了创建私有作用域的方法。这种技术通常应用
    在函数外部的全局作用域中,防止变量和函数添加到全局作用域中。在
    大型应用中,可以避免命名冲突。如:

         
    (function()
         
    {
            
    varnow=newDate();
            
    if(now.getMonth()==0&&now.getDate()==1)
            
    {
               
    alert("Happy new year!");
            
    }
         
    })();

      
    上例中,匿名函数内的now变量只能在匿名函数内被访问。成为
    局部变量。
      
    这种模式不会有闭包产生的内存问题,因为不存在对匿名函数的
    引用。当函数执行完成后,作用域链将被立即销毁。
      
    上例中的匿名函数实际上是一种立即执行的匿名函数表达式。

  • 相关阅读:
    微信小程序订阅消息
    自动生成小学四则运算题目
    个人项目作业
    自我介绍+软工5问
    软件工程之获小黄衫感言
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
    2020软件工程作业00——问题清单
    2020软件工程作业04
    2020软件工程作业03
  • 原文地址:https://www.cnblogs.com/shn1637/p/3456609.html
Copyright © 2011-2022 走看看