このコードがあるソース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にあります。