Re: [問題] this
※ 引述《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
05/20 03:31, 1F
推
05/20 05:09, , 2F
05/20 05:09, 2F
推
05/20 05:39, , 3F
05/20 05:39, 3F
→
05/20 05:40, , 4F
05/20 05:40, 4F
→
05/20 07:36, , 5F
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
05/20 09:53, 11F
推
05/20 10:08, , 12F
05/20 10:08, 12F
→
05/20 10:09, , 13F
05/20 10:09, 13F
→
05/20 10:10, , 14F
05/20 10:10, 14F
→
05/20 10:12, , 15F
05/20 10:12, 15F
→
05/20 10:13, , 16F
05/20 10:13, 16F
推
05/20 14:09, , 17F
05/20 14:09, 17F
→
05/20 14:09, , 18F
05/20 14:09, 18F
推
05/20 17:38, , 19F
05/20 17:38, 19F
推
05/21 03:34, , 20F
05/21 03:34, 20F
推
05/29 00:41, , 21F
05/29 00:41, 21F
討論串 (同標題文章)