在看RM的js腳本時,會看到好多好多好多好多的this,他們到底是什麼意思?上一回介紹過的:重新介紹 JavaScript內有很詳細的說明。不過我知道沒人去看,要是我也不會去看,所以我只好把部分內容貼出來。
"
這裡出現了之前沒有提過的 'this' 關鍵字。在一個函式內,「this」 指的是目前的物件。其真正的意義是經由你呼叫函數的方式來指定。如果你透過在物件上使用點或中括號記號來呼叫它,這物件就成為「this」。如果在呼叫中沒有使用點記號,「this」就會參考到全域物件. 這經常造成錯誤。
"
看不懂?沒關係,其實這段我也有看沒有懂,但我是這樣理解this的,我們使用筆記2裡面提到的讀取金錢的函式來解釋一下。
那個函式是長這樣的,一共有三段:
Window_Wand.prototype.refresh = function() {var x = this.textPadding();var width = this.contents.width - this.textPadding() * 2;this.contents.clear();this.drawCurrencyValue(this.value(), this.currencyUnit(), x, 0, width); //顯示金錢跟錢的單位};
//回傳隊伍持有的金錢給value()
Window_Wand.prototype.value = function() {return $gameParty.gold();};//回傳系統設定裡面的金錢單位給currencyUnit()Window_Wand.prototype.currencyUnit = function() {return TextManager.currencyUnit;};
我們看中間value函式的部分,他(return)取出了一個變數,我們先把這個變數簡稱v。
v = Window_Wand.prototype.value() = this.value()
this感覺就像是一個簡寫,用來代換Window_Wand.prototype
用途是取得return出來的值。
所以如果想要取得其他函式的值,或是使用其他函式,別忘了加上this哦。
我流理解,不保證正確!
延伸閱讀: