天天看點

Javascript對象的方法指派

javascript對象程式設計學習中,一直不能很好的掌握對象的屬性(property)和方法(method)。今天在寫代碼過程中,又犯了一個低級錯誤。

Javascript對象的方法指派

己想這個方法在init()函數裡面調用,ctx怎麼會為”undefined”,不可能。監聽事件不會出錯呀。那問題說明這個函數在init()之前就

運作了。斷點跟蹤就證明自己猜想是對的,但是這是一個對象,我隻是new一下,不可能回去調用它的方法呀!并且drawball()方法也是在

init()函數裡面調用的。仔細一行一行的看代碼,看到底哪裡出了問題。最後發現下面兩行很低級錯誤的代碼,它們是:

this.draw=drawball(); this.moveit=moveball();

本意是在自定義對象裡面,給對象一個方

法。我給了它方法,但是後面的()會馬上調用這個方法。這是不應該的。this.draw指向一個函數的位址,但是在這裡不需要馬上調用它。是以在函數

init()還沒有進行時,這個drawball()函數就開始運作了。是以此時的ctx确實為undefined。

正确的做法是把方法的名字指派給對象的方法。代碼改為下面就正常運作:

運作結果如下:

Javascript對象的方法指派

繼續閱讀