切換
舊版
前往
大廳
主題

RM MV學習筆記(4) 什麼是this?

路漫行 | 2018-01-18 23:13:53 | 巴幣 0 | 人氣 609


在看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哦。

我流理解,不保證正確!



延伸閱讀:
送禮物贊助創作者 !
0
留言

創作回應

更多創作