[英]Typescript: Uncaught typeError, Cannot read property "push" of undefined
private readonly lives: number = 5;
public loadLifeImages() {
var ammount: Array<any>;
for (var i = 0; i < this.lives; i++) {
ammount.push(i);
}
ammount.forEach((v, i) => {
console.log(this.lives);
console.log(i);
var newLifeImage = new Image();
newLifeImage.src = './assets/images/SpaceShooterRedux/PNG/UI/PlayerLife1_blue.png';
newLifeImage.onload = () => {
this.ctx.drawImage(newLifeImage, i * 50, 50, 30, 30);
}
})
}
我正在嘗試將這些數字推送到 Typescript 中的這個數組,因此我可以使用 for 每個循環將圖像放在我的畫布上,但是它給出了錯誤“無法讀取未定義的屬性“推送””我知道這有點雙倍,但我真的想不出任何其他方法來做到這一點。 有人能弄清楚它是什么嗎? 提前致謝!
這可以通過像這樣初始化ammount
來解決:
var ammount: Array<any> = [];
這是因為僅輸入var ammount: Array<any>
不會為ammount
提供值,因此它變為undefined
(所有 javascript 變量的默認值)。 = []
將變量初始化為空數組。
但是,我想指出,從您這里的代碼來看,沒有充分的理由創建一個新數組並將值推入其中。 相反,您可以將 forEach 邏輯放在 for 循環中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.