第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

無法讀取javascript中未定義的屬性“clearRect”

無法讀取javascript中未定義的屬性“clearRect”

皈依舞 2023-11-02 21:14:36
我看到這個(gè)問題以前被問過,但它并沒有解決我的問題!我是 JavaScript 新手,我?guī)缀趸艘惶鞎r(shí)間嘗試解決它,但仍然無法解決。我有一個(gè)這樣的類和函數(shù):let playerTank = {width: 80, height: 80, speed: 2};class Tank {    constructor(canvas) {        this.canvas = canvas;        this.ctx = canvas.getContext("2d");    }    draw() {        this.ctx.drawImage(.....);        this.ctx.stroke();    }    update(e) {        if (e.keyCode == 37) {            this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);            this.draw();            // do something ...        }    }}function main() {    let canvas = document.getElementByID("my-canvas");        let tank = new Tank(canvas);    tank.draw();    window.addEventListener("keydown", tank.update, true);    window.addEventListener("keyup", tank.update, false);}main();這是我的問題!當(dāng)我單擊該鍵時(shí),我會(huì)收到以下錯(cuò)誤:can't read property 'clearRect' of undefinedcan't read property 'draw' of undefined我實(shí)在不明白為什么不能訪問同一個(gè)類中的屬性和函數(shù)?
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

你失去了上下文:


class Tank {

    draw() {

      console.log('draw');

    }

    update() {

       this.draw();

    }

}


const tank = new Tank();


// Call method of instance. Works

tank.draw(); 


// Set this method as listener. 

// Dont works, cause method called from event context (window)

window.addEventListener("event1", tank.update, true); 


// Set anonimous listener, which call method. Works

window.addEventListener("event2", () => tank.update(), true); 


// Set method as listener and bind right context. Also works

window.addEventListener("event3", tank.update.bind(tank), true); 


window.dispatchEvent(new Event("event1"));

window.dispatchEvent(new Event("event2"));

window.dispatchEvent(new Event("event3"));


查看完整回答
反對(duì) 回復(fù) 2023-11-02
  • 1 回答
  • 0 關(guān)注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)