onload函数中的Javascript变量范围

这个问题在这里已经有了答案:

  • JavaScript中变量的范围是什么? 25个答案

  • 您正在访问b之外的函数声明。

    本地范围是功能导向的。

    所以在:

    window.onload = function() {
        var b = "b";
        var p = new Person();
        p.doIknowAorB()'
    }
    

    b是连接到onload的匿名(未命名)函数的局部变量。

    但是在函数doIknowAorB中的p

    Person.prototype = function(){
        function doIknowAorB() {
            console.log(a);
            console.log(b);
        };
        return {
            "doIknowAorB": doIknowAorB
        }
    }();
    

    显然没有b 。 你可以访问a因为它是一个全局变量。


    因为b变成了匿名函数的局部变量或私有变量。

    JavaScript中的范围是功能导向的。

    所以,它不能在该function块之外访问。

    链接地址: http://www.djcxy.com/p/40833.html

    上一篇: Javascript variable scope within onload function

    下一篇: Does javascript implement lexical scoping?