Re: [問題] this

看板Flash作者 (scars)時間14年前 (2011/05/20 03:02), 編輯推噓9(9012)
留言21則, 6人參與, 最新討論串4/4 (看更多)
※ 引述《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

05/20 03:31, , 1F
我懂了 謝S大! 所以說如果不怕麻煩 this算是可有可無囉?
05/20 03:31, 1F

05/20 05:09, , 2F
to 樓上: 為什麼要討厭this? 或拒絕用它呢?
05/20 05:09, 2F

05/20 05:39, , 3F
我只是看完書 對書裡面寫得有點疑問... 沒有拒絕用this啦
05/20 05:39, 3F

05/20 05:40, , 4F
不然我也不用在這邊問啦...
05/20 05:40, 4F

05/20 07:36, , 5F
this就是"這裡",就跟你講話一樣,如果你講的話別人能
05/20 07:36, 5F

05/20 07:37, , 6F
很清楚的知道你是在講"哪裡",那就不需要特別講"這裡"
05/20 07:37, 6F

05/20 07:38, , 7F
至於"這裡"是哪裡? 那要看你站在哪裡才知道這裡是哪裡
05/20 07:38, 7F

05/20 07:38, , 8F
你站在一樓說"這裡",那"這裡"就是一樓
05/20 07:38, 8F

05/20 07:39, , 9F
搞得好像繞口令.. :)
05/20 07:39, 9F

05/20 09:51, , 10F
指定一個東西 有絕對位置和相對位置 像是資料夾
05/20 09:51, 10F

05/20 09:53, , 11F
this 就像是資料夾或網頁的 ./ 一樣
05/20 09:53, 11F

05/20 10:08, , 12F
不用this的話, 所有會用到this情況, 都要把this改成那個
05/20 10:08, 12F

05/20 10:09, , 13F
主詞. 多少個object會用到這個method, 就要寫多少份
05/20 10:09, 13F

05/20 10:10, , 14F
這個method (但只是把裡面的this替換成 John/Mary/...
05/20 10:10, 14F

05/20 10:12, , 15F
這樣,為了用淺顯易懂的程式,反而讓程式不容易維護與修改
05/20 10:12, 15F

05/20 10:13, , 16F
.而且,有些情況是沒辦法預期有誰會用到這個method.
05/20 10:13, 16F

05/20 14:09, , 17F
我覺得那本書想指的應該是 好的命名規則可以避免掉不必
05/20 14:09, 17F

05/20 14:09, , 18F
要的this 不過還是看情況啦
05/20 14:09, 18F

05/20 17:38, , 19F
我覺得coding時this不要省略 程式碼會更好讀
05/20 17:38, 19F

05/21 03:34, , 20F
恩恩 我有比較清楚一點了 感謝各位!
05/21 03:34, 20F

05/29 00:41, , 21F
這篇可以m了,想當初一直猜不透this是什麼
05/29 00:41, 21F
文章代碼(AID): #1DrMavda (Flash)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
0
1
完整討論串 (本文為第 4 之 4 篇):
問題
9
21
問題
0
1
問題
3
3
問題
文章代碼(AID): #1DrMavda (Flash)