이 코드가있는 src js 파일이 있습니다. 스크립트에서 est_bandwidth 배열을 관리해야하지만 올바른 작성을 확신 할지라도 전 세계적으로 볼 수는 없습니다. 왜? 함수 외부에서도 배열을 어떻게 볼 수 있습니까?함수 프로토 타입 JS의 가변 가시성
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를 볼 수 있지만 함수 밖에서 만 나는 그 이유를 모른다.
언제 어떻게 어레이에 액세스합니까? 코드 자체는 기술적으로 잘 작동합니다. 'parseInt'는 문자열로부터 정수를 파싱하기위한 것이고, 숫자 타입에서 그것을 호출하는 것은 의미가 없습니다. – Esailija
여기 완전한 코드입니다 : jsfiddle.net/4DY5C/1 당신은 est_bandwidth 대신 banda_stimata를 참조해야합니다. 코드는 출처 중 대역폭 .js에 있습니다. 이론적으로는 – user1903898