zoukankan      html  css  js  c++  java
  • 理解函数调用_使用严格模式边使用arguments别名

    <!DOCTYPE html>
    <html lang="en">
    <head>  
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="../unitl/test.js"></script>
        <style>
            #results li.pass {color:green;}
            #results li.fail {color:red;}
        </style>
    </head>
    <body>
        <ul id="results"></ul>
    </body>
    <script>
    
    
    
        "use strict";
    
        function infiltrate(person) {
    
            // person参数和arguments的第一个值开始是相同的。
            assert(person==='gardener','The person is a gardener');
    
            // 改变第一个参数
            assert(arguments[0] === 'gardener','The first arguments is a gardener');
    
                
            //改变第一个参数
            arguments[0] = 'ninja';
    
            //第一个参数值被改变了
            assert(arguments[0] === 'ninja','The first argument is now a ninja');
    
            //Person参数的值没变   
            assert(person==='gardener','The person is still a gardener');
    
        }
    
        
    
        
        infiltrate("gardener");
    
    
    </script>
    </html>
        
    

    第一个代码use strict是一个简单的字符串。
    这将告诉javascript引擎,我们希望将下面的代码在严格模式下执行。在本例中,严格模式将改变成的执行结果,最终person参数的值和arguments参数的第一个值,
    将不再相同。

          assert(person==='gardener','The person is a  gardener');
          assert(arguments[0] === 'gardener','The first argument is a gardener');
    

    但与非严格模式不同的是,这一次arguments对象不再作为参数的别名。如果你想通过arguments[0]='ninja'改变第一个参数的值,这将不会同时改变person参数。

          assert(arguments[0]==='ninja','The first argument is now a ninja');
          assert(person==='gardener','The person is still a gardener');
    
  • 相关阅读:
    五种IO模型透彻分析
    linux正则表达式
    洛谷P1242 新汉诺塔 【神奇的递归】
    【NOIP2012】疫情控制
    [ZJOI2007]棋盘制作 【最大同色矩形】
    [NOIP2008]双栈排序 【二分图 + 模拟】
    LCA的倍增算法
    最大权闭合子图
    小Z的袜子 题解报告【莫队】
    ZJOI2012网络 题解报告【LCT】
  • 原文地址:https://www.cnblogs.com/jamal/p/14121169.html
Copyright © 2011-2022 走看看