我有一个源 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
,但只能在函数之外看到,我不知道为什么。
这是完整的代码:https ://jsfiddle.net/4DY5C/1 。您必须参考banda_stimata
而不是est_bandwidth
. 代码位于源代码中的 bandwidth.js 中。