物件方法程式編輯(視頻版)
-
0:00 - 0:03在前一個講談中,我們學到如何製作物件類型,
-
0:03 - 0:06來代表我們兩種類似「溫斯頓」的物件。
-
0:06 - 0:09然後藉由建構子,初始化它們。
-
0:09 - 0:13一個物件類型,不只需要與其屬性相關聯。
-
0:13 - 0:16它也可以與函數相關聯。
-
0:16 - 0:20想想世界上所有的物件類型,例如,我們人類。
-
0:20 - 0:22我們都有身高和年齡,
-
0:22 - 0:26也有可以做的事情,例如,
睡覺,吃飯,和編輯程式。 -
0:26 - 0:31我們需要能將這些函數與其物件類型相關聯。
-
0:31 - 0:34在此程式裡,我們將接續上次的編輯,
-
0:34 - 0:39我們這裡已有了「繪製溫斯頓」的函數,
用來呼叫兩種「溫斯頓」物件。 -
0:39 - 0:45如果能將它附帶於溫斯頓物件類型裡,
不就更簡便了? -
0:45 - 0:48我們是可以這麼做,而且很容易。
-
0:49 - 0:52所以在建構子裡,我們要編寫「溫斯頓 」,
-
0:52 - 0:56大寫的「W 」以及「 點」、「原型」。
-
0:56 - 0:59這「原型」是一個新詞,你可能沒見過。
-
0:59 - 1:06「原型」是物件的屬性,可附帶函數。
-
1:06 - 1:10這將表示,每個物件的實例,
-
1:10 - 1:13也將附帶這些函數。
-
1:13 - 1:18所以我們可以用「點」、「原型」、「點」,
然後「函數的名稱」。 -
1:18 - 1:24所以我們用「繪製等於」,然後就可以
把「繪製溫斯頓」代碼, -
1:24 - 1:28我們就把它放置到這裡面。
-
1:28 - 1:33好了。我們目前完成的是我們附帶了繪製函數
-
1:33 - 1:35於我們的溫斯頓原型。
-
1:35 - 1:40這意味著,我們應該能呼叫「繪製()」
於任一種類似「溫斯頓」的物件。 -
1:40 - 1:45因此,我們應該能呼叫「繪製()」
於「溫斯頓少年」或「溫斯頓成人」。 -
1:45 - 1:50當我們有了這樣能夠
呼叫物件的函數, -
1:50 - 1:55我們稱它為「方法」。所以,
從此你會聽我說「方法」這名詞。 -
1:55 - 1:58我們就稱此為「繪製方法」。好了。
-
1:58 - 2:04現在我們來刪除這個,還有刪除這個,
然後看看我們是否能呼叫「繪製()」? -
2:04 - 2:07「溫斯頓少年」、「點」、「繪製()」。
-
2:07 - 2:08好的,我們有個錯誤。
-
2:08 - 2:14這裡有明顯的錯誤。
它說,「溫斯頓物件沒被定義」。 -
2:14 - 2:18問題是,先前我們傳遞
這個參數到「繪製溫斯頓」裡, -
2:18 - 2:23是一個溫斯頓物件,但現在我們傳遞不了。
-
2:23 - 2:27所以,我們可以改變這個來傳遞,
然後,讓我們看看, -
2:27 - 2:30在這裡會通過甚麼?
我們得通過「溫斯頓少年」。 -
2:30 - 2:34好了,解決了,但那似乎滿滑稽的。
-
2:34 - 2:38我已經在物件本身呼叫繪製。
-
2:38 - 2:42我應該不必還得另外再傳遞到物件裡。
-
2:42 - 2:44這似乎是多餘的。
-
2:44 - 2:46沒錯,我們應該不必這麼做。
-
2:46 - 2:48所以,讓我們把這裡刪除。現在想想,
-
2:48 - 2:52我們如果在物件裡,我們能使用甚麼
-
2:52 - 2:54來取讀物件的屬性呢?
-
2:54 - 2:58你可以看看我們的建構子,
然後想起那個特殊的關鍵字,「此」, -
2:58 - 3:04然後想到,啊,如果我們改變這個為「此」!
-
3:04 - 3:08讓我們將「溫斯頓物件」改寫為「此」。
-
3:08 - 3:13因為現在我們在這物件裡,
所以物件正在評估這函數, -
3:13 - 3:17好讓「此」能用來引用當前的物件。
-
3:17 - 3:20這樣,我們只要用「此」,我們就能讀取,
-
3:20 - 3:23當前物件的所有屬性。
-
3:23 - 3:27這是完全有效的,看到了嗎?是不是很酷?
-
3:27 - 3:32我們現在可以用「溫斯頓成人」、
「點」、「繪製()」。 -
3:32 - 3:35成功!它將能讀取「溫斯頓成人」的屬性,
-
3:35 - 3:38因為那是被呼叫的物件。
-
3:38 - 3:41所以,很酷的是,這個「此」關鍵字。
-
3:41 - 3:44即使,在說時會令人有點混淆。
-
3:46 - 3:49好了。這還滿有趣的。
接下來,我們再添加一個方法。 -
3:49 - 3:52那麼,溫斯頓還會做什麼?
-
3:52 - 3:56也許他會說話。所以我們來製作一個
「溫斯頓點原型點講話」。 -
3:56 - 4:01這樣我們就可附帶許多的方法於原型裡。
-
4:01 - 4:05所以我們來說,「我是溫斯頓!」
-
4:05 - 4:12然後,我們再用「此」、「點X+ 20」,
和有「此」、「點Y + 150」。 -
4:13 - 4:16然後,你知道的,什麼都不會發生。
-
4:16 - 4:20那是因為我還沒實際的呼叫那個函數。
-
4:20 - 4:24我們讓這少年˙講話。
「溫斯頓少年點講話()」。青少年老愛說話。 -
4:24 - 4:30好的,「我是溫斯頓」。成功了!
然後用「溫斯頓成人點講話()」。 -
4:30 - 4:32成功了!
-
4:32 - 4:36現在我們的溫斯頓物件類型,有了它的屬性:
-
4:36 - 4:41暱稱、年齡、X、Y;
而且它有了功能:行為、方法; -
4:41 - 4:44行為的不同取決於其屬性。
-
4:44 - 4:48我們能創建許多個我們想要的溫斯頓實例,
-
4:48 - 4:51然後以其中一種方法就能呼叫它。
-
4:51 - 4:53這很酷,是吧?
Sir Len Loo approved Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) | ||
Deborah Lu edited Chinese, Traditional subtitles for Object Methods (Video Version) |