javascript - 关于js作用域及执行环境的问题

查看:72
本文介绍了javascript - 关于js作用域及执行环境的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

            window.onload = function(){
            var  b = 1;
            alert(this);
            Test();
            }

    function Test(){
         alert(this);
        alert(b);
    }
    


test方法在onload事件函数里执行,那这方法应该是在onload事件函数的作用域内,同时我打印onload事件的指向与test方法的指向,都是window,不明白为什么方法Test获取不到变量b,往前辈们指点下,谢谢。

解决方案

  1. var 声明 b 和调用 b 是在两个独立的代码块内
    独立的代码块内声明的变量不能互相调用。

  2. this 指向是调用体所决定的。
    调用时是 Test() 这种形式,这和 Test() 在哪写的无关。
    你甚至可以将 Test() 理解为 window.Test() ,里面的 this 指向为 window

这篇关于javascript - 关于js作用域及执行环境的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆