账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于作用域的问题,函数非全局函数的影响?
    21
    0
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <script>
    function fn1(data) {//比如把fn1函数放入window.load=function(){}的函数里面为什么就不能执行的?是什么原因导致的?就是fn1不是全局函数的话为什么出错了?
        var oUl1 = document.getElementById('ul1');
        var html = '';
        for (var i=0; i<data.length; i++) {
            html += '<li>'+data[i]+'</li>';
        }
        oUl1.innerHTML = html;
    }
    function fn2(data) {
        var oUl2 = document.getElementById('ul2');
        var html = '';
        for (var i=0; i<data.length; i++) {
            html += '<li>'+data[i]+'</li>';
        }
        oUl2.innerHTML = html;
    }
    function fn3(data) {
        var oUl3 = document.getElementById('ul3');
        var html = '';
        for (var i=0; i<data.length; i++) {
            html += '<li>'+data[i]+'</li>';
        }
        oUl3.innerHTML = html;
    }
    </script>
    <script>
    window.onload = function() {
        
        var oBtn1 = document.getElementById('btn1');
        
        var oBtn2 = document.getElementById('btn2');
        
        oBtn1.onclick = function() {
            
            var oScript = document.createElement('script');
            oScript.src = 'getData.php?callback=fn1';
            document.body.appendChild(oScript);
            
        }
        
        var oBtn2 = document.getElementById('btn2');
        
        oBtn2.onclick = function() {
            
            var oScript = document.createElement('script');
            oScript.src = 'getData.php?t=str&callback=fn2';
            document.body.appendChild(oScript);
            
        }
        
        var oBtn3 = document.getElementById('btn3');
        
        oBtn3.onclick = function() {
            
            var oScript = document.createElement('script');
            oScript.src = 'getData.php?callback=fn3';
            document.body.appendChild(oScript);
            
        }
        
    }
    </script>
    </head>
    
    <body>
        <input type="button" id="btn1" value="加载数字" />
        <ul id="ul1"></ul>
        <input type="button" id="btn2" value="加载字母" />
        <ul id="ul2"></ul>
        <input type="button" id="btn3" value="加载字母" />
        <ul id="ul3"></ul>
    </body>
    </html>

    -----------------PHP文件-----------------

    <?php
    $t = isset($_GET['t']) ? $_GET['t'] : 'num';
    $callback = isset($_GET['callback']) ? $_GET['callback'] : 'fn1';
    
    $arr1 = array('111111','22222222','33333333','4444444','555555555555555555555');
    $arr2 = array('aaaaaaaaaaaa','bbbbbbbb','cccccccccccc','ddddddddd','eeeeeeeeeeee');
    
    if ($t == 'num') {
        $data = json_encode($arr1);
    } else {
        $data = json_encode($arr2);
    }
    
    echo $callback.'('.$data.');';
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 思念說給風聽 普通会员 1楼

      作用域是JavaScript中一个重要的概念,它可以帮助我们理解代码中的变量和函数的作用范围。在JavaScript中,有四种作用域:

      1. 全局作用域:在函数内部定义的变量或函数是全局的,它们可以在函数外部被访问。

      ```javascript var x = 10;

      function myFunction() { console.log(x); } myFunction(); ```

      1. 局部作用域:在函数内部定义的变量或函数只能在其内部访问。

      ```javascript function myFunction() { var x = 10;

      console.log(x); } ```

      1. 块作用域:在块级作用域中定义的函数或变量是局部的,它们只能在其内使用。

      ```javascript if (true) { var x = 10;

      console.log(x); } ```

      1. 函数作用域:在函数内部定义的变量或函数是函数的局部变量,它们只能在其内部访问。

      ```javascript function myFunction() { console.log(x); }

      myFunction();

      var x = 10;

      myFunction(); ```

      非全局函数在函数内部定义的变量或函数是局部的,它们不能在函数外部被访问,这是函数非全局函数的影响。函数非全局函数可以在函数内部定义,可以被函数外部调用,但是不能在函数外部访问,不能形成全局变量。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部