函数原型JS中的可变可见性

时间:2012-12-17 14:54:38

标签: javascript arrays javascript-events visibility

我有一个src js文件,我有这个代码。我需要在脚本中管理est_bandwidth数组,但即使我确定正确的创建我也看不到全局。为什么?如何在函数外部看到数组呢?

var maxBandwidth = 8 * 1024 * 1024;        // 8 Mbps
var est_bandwidth = new Array();
function bandwidth(initial_bps, weight_f, weight_s){

    this.bps = initial_bps;
    this.weight_f = weight_f;
    this.weight_s = weight_s;

}

bandwidth.prototype.calcWeightedBandwidth = function(_bps) {
    this.bps = parseInt(((this.weight_f * this.bps) + (this.weight_s * _bps)) / 2) * 0.9;
    if (this.bps > maxBandwidth && maxBandwidth > 0) this.bps = maxBandwidth;
    est_bandwidth.push(this.bps / 1024);
    return this.bps;
}

当我尝试访问est_bandwidth时的结果是一个空数组。如果我在声明之后修改:

est_bandwidth[0] = 1;
est_bandwidth[1] = 2;

我得到了,在我的控制台中,[1,2]。所以我可以看到est_bandwidth但只在函数之外,我不知道为什么。

1 个答案:

答案 0 :(得分:0)

我只是将您的代码粘贴到JavaScript控制台中,然后运行此序列:

> bw = new bandwidth(9600, 0.8, 0.9)
bandwidth
> bw.calcWeightedBandwidth(9600)
7344
> est_bandwidth
[7.171875]

所以代码似乎运行良好,我可以毫无问题地访问est_bandwidth

您是否以不同方式执行脚本?