1
當我運行這段代碼時,我得到一個TypeError,因爲this.coverageList
未定義。我懷疑這與我看不到的關閉問題有關。方法this.accumulateCoverage
傳遞給Array
實例的forEach()
方法。Javascript關閉。爲什麼我的「this」在這個方法中未定義
igv.Coverage = function (genomicInterval) {
this.accumulateCoverage = function (alignment) {
var i, j, blocksBBoxLength;
if (!this.coverageList) {
this.coverageList = new Array(genomicInterval.end - genomicInterval.start);
for (i = 0; i < this.coverageList.length; i++) {
this.coverageList[ i ] = 0;
}
}
};
genomicInterval.features.forEach(this.accumulateCoverage);
}
是的,使用局部變量賦值 - me = this - 將封閉中包含的「this」包含在我之後。謝謝馬克。乾杯。 – dugla