看板 Flash 關於我們 聯絡資訊
※ 引述《boyen3 (Mentirosa!!)》之銘言: : 最近開始研究AS3 正在看EAS3 : 看了很久還是對this這個關鍵字沒什麼概念... : 不知道有沒有看錯 書上說應該要儘量避免使用this : 只有在function的參數跟function裡的變數名稱一樣 : 可能會造成錯誤才用this : 但是書又說應該避免參數跟變數使用同樣名稱 : 感覺this只是讓寫程式的人不用記變數一直this就好... : 我這樣有理解錯嗎? : 還是this有其他的用途? 物件導向跟scope的問題 例如一個class Ball 他有一個property color 還有一個method setColor 假設這樣寫 public function setColor(color:uint):void{ color=color } 我想讓這個 Ball 的 property color 等於我傳進去的 param color 但這段code肯定沒辦法得到正確的結果 因為裡面兩個 color 都是指向傳入的參數 color 這種情況就要使用 this.color = color 為什麼書上說要避免把變數跟參數用同一個名字 原因之一應該是因為容易混淆 那如果我就是取到同一個名字怎麼辦 還可以用 this 讓你有辦法指向class member 又或者我需要用運算取得這個 class member 的名字 例如常見的 this["img"+i] 利用迴圈可以取得這個物件的 img1 img2 img3 等等 我個人覺得 this 其實不是什麼會讓人混淆的東西 只是因為有太多人連this是什麼意思都不知道就開始使用this 你的this放在什麼物件裡面, this 就是指向那個物件本身 this.color 就是指向這個物件的 color 不會是 function 傳入的 param 或 local variable -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.2.251
boyen3:我懂了 謝S大! 所以說如果不怕麻煩 this算是可有可無囉? 05/20 03:31
ericinttu:to 樓上: 為什麼要討厭this? 或拒絕用它呢? 05/20 05:09
boyen3:我只是看完書 對書裡面寫得有點疑問... 沒有拒絕用this啦 05/20 05:39
boyen3:不然我也不用在這邊問啦... 05/20 05:40
aquarianboy:this就是"這裡",就跟你講話一樣,如果你講的話別人能 05/20 07:36
aquarianboy:很清楚的知道你是在講"哪裡",那就不需要特別講"這裡" 05/20 07:37
aquarianboy:至於"這裡"是哪裡? 那要看你站在哪裡才知道這裡是哪裡 05/20 07:38
aquarianboy:你站在一樓說"這裡",那"這裡"就是一樓 05/20 07:38
aquarianboy:搞得好像繞口令.. :) 05/20 07:39
etrexetrex:指定一個東西 有絕對位置和相對位置 像是資料夾 05/20 09:51
etrexetrex:this 就像是資料夾或網頁的 ./ 一樣 05/20 09:53
ericinttu:不用this的話, 所有會用到this情況, 都要把this改成那個 05/20 10:08
ericinttu:主詞. 多少個object會用到這個method, 就要寫多少份 05/20 10:09
ericinttu:這個method (但只是把裡面的this替換成 John/Mary/... 05/20 10:10
ericinttu:這樣,為了用淺顯易懂的程式,反而讓程式不容易維護與修改 05/20 10:12
ericinttu:.而且,有些情況是沒辦法預期有誰會用到這個method. 05/20 10:13
peacedove:我覺得那本書想指的應該是 好的命名規則可以避免掉不必 05/20 14:09
peacedove:要的this 不過還是看情況啦 05/20 14:09
etrexetrex:我覺得coding時this不要省略 程式碼會更好讀 05/20 17:38
boyen3:恩恩 我有比較清楚一點了 感謝各位! 05/21 03:34
emily114005:這篇可以m了,想當初一直猜不透this是什麼 05/29 00:41