我會把我的代碼以簡單的方式,但如果有好的靈魂想幫助代碼爲|on Github| /lib/inmotion/editor.js(line 99)爲什麼這個JavaScript的OO是錯的?
editor.js內
function Editor(){
var instance = this;
this.key_frames = [] // a list of key frames
this.kf = null // the current KeyFrame
function notice_click(click){
instance.kf.add_bone(1) // <-- error here
// instance.kf.list.push(1) // <-- this works, but is incomplete
}
}
key_frame.js
function KeyFrame(){
instance = this
instance.changed = false // for the redraw :)
instance.list = []
function add_bone(bone){
instance.list.push(bone)
instance.changed = true
return true
}
}
我的程序有有大量的關鍵幀實例的獨特的編輯器實例。
每個KeyFrame都有很多骨頭。
所以總有一個活動KeyFrame,由Editor.kf實例定義
由於我只有一個kf,我可以添加骨頭到沒有問題的骨骼,但是當我添加更多的KeyFrame時,我只能將add_bone添加到最後一個kf我創建!爲什麼?
如果我不夠清晰,我很抱歉,請在懷疑
首先,**使用分號**,是的,他們有時是可選的......當你開始時,沒有合法的藉口*不使用它們,使用它們,明確。其次,'instance = this'設置一個名爲'instance'的* global *變量,你需要'var instance = this;'因爲它是本地的。 – 2010-07-19 03:43:56
@Nick Craver:是的,確切地說,你不想讓這個答案成爲我可以接受的選擇嗎? – 2010-07-19 06:33:45