javascript 中的窗口函数说明

tom*_*ung 1 javascript jquery

这可能很简单。我正在实现http://www.chartjs.org/的图表插件

在 bar.html 示例文件中,有以下代码:

<!doctype html>
<html>
    <head>
        <title>Bar Chart</title>
        <script src="../Chart.js"></script>
    </head>
    <body>
        <div style="width: 50%">
            <canvas id="canvas" height="450" width="600"></canvas>
        </div>


    <script>
    var randomScalingFactor = function(){ return Math.round(Math.random()*100)};

    var barChartData = {
        labels : ["January","February","March","April","May","June","July"],
        datasets : [
            {
                fillColor : "rgba(220,220,220,0.5)",
                strokeColor : "rgba(220,220,220,0.8)",
                highlightFill: "rgba(220,220,220,0.75)",
                highlightStroke: "rgba(220,220,220,1)",
                data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
            },
            {
                fillColor : "rgba(151,187,205,0.5)",
                strokeColor : "rgba(151,187,205,0.8)",
                highlightFill : "rgba(151,187,205,0.75)",
                highlightStroke : "rgba(151,187,205,1)",
                data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
            }
        ]

    }
    window.onload = function(){
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myBar = new Chart(ctx).Bar(barChartData, {
            responsive : true
        });
    }

    </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在代码中它有 window.myBar= new Chart...

我的酒吧是什么?这只是一个像其他变量一样的变量吗?窗户有什么作用。前面呢?

jdp*_*nix 5

window.myBar = new Chart(ctx).Bar(barChartData, {
    responsive : true
});
Run Code Online (Sandbox Code Playgroud)

window.myBar

这是对随后代码创建的全局变量的引用。以后这个可以单独参考myBar。JavaScript 代码中应避免使用全局变量。

= new Chart(ctx)

Chart()构造函数语法中调用该函数,传递给<canvas>.

.Bar(barChartData, { responsive : true });

调用sBar()的方法Chart,传递barChartData和一个文字对象{ responsive: true }。像这样使用,文字对象Bar()是一组用于更改其行为方式的选项。