WEBVTT 00:00:01.333 --> 00:00:05.203 我寫了一個程式要告訴你們關於 溫斯頓的生動細節 00:00:05.213 --> 00:00:08.669 但是不會說很多 因為溫斯頓喜歡保持神秘 00:00:08.669 --> 00:00:11.590 這就是溫斯頓的風格 00:00:11.590 --> 00:00:13.874 讓我們來看看我怎麼寫這個程式 00:00:13.874 --> 00:00:17.274 我先在程式上方創造一些變量 (varaible) 來儲存溫斯頓個人資料 00:00:17.274 --> 00:00:22.075 第一個變量是數值 - 溫斯頓的年齡 第二個變量是字串 - 他的眼睛顏色 00:00:22.075 --> 00:00:26.107 第三個變量是字串陣列 - 他喜歡做的事 00:00:26.107 --> 00:00:31.516 而... 最後二個變量是字串 - 描述他的出生地 00:00:31.516 --> 00:00:36.730 然後從這裡 我用文字命令 (text command) 和變量名稱寫出這些 00:00:36.730 --> 00:00:42.179 當然對於字串陣列 若要存取陣列元素 必須使用中括號 00:00:42.179 --> 00:00:43.270 不錯 00:00:43.270 --> 00:00:48.866 現在 所有五個變量都描述同一件事: 溫斯頓 00:00:48.866 --> 00:00:52.268 但是變量彼此之間不知道它們都和溫斯頓有關 00:00:52.278 --> 00:00:57.592 我們知道... Javascript 中有一個較好的酷方法 00:00:57.592 --> 00:01:01.149 來儲存眾多相關的資訊 00:01:01.149 --> 00:01:03.645 它叫做物件 (Object) 00:01:03.645 --> 00:01:06.385 物件意思是 與其使用五個變量 00:01:06.385 --> 00:01:11.923 只使用一個單獨變量 就能儲存所有資訊 真的很酷 00:01:11.923 --> 00:01:14.439 讓我們來試試溫斯頓的資料 00:01:14.439 --> 00:01:18.257 首先 宣告變量 把它叫做溫斯頓 winston 00:01:18.257 --> 00:01:23.399 然後 輸入一個開放的大括號 是彎曲而不是方形的括號 00:01:23.399 --> 00:01:25.547 以及一個分號 00:01:25.547 --> 00:01:31.609 我們剛剛造了一個物件 但物件內尚無任何東西 00:01:31.609 --> 00:01:35.588 若要添加資料 必須加上屬性 (property) 00:01:35.588 --> 00:01:41.276 屬性是一個關鍵字 (Key) 和一個數值 例如 年齡 age 為19 00:01:41.276 --> 00:01:44.479 好 至於眼睛 我們要先加上一個逗號 00:01:44.479 --> 00:01:48.039 然後眼睛為 "black" 好的 酷 00:01:48.039 --> 00:01:52.572 目前為止 溫斯頓有兩項屬性在物件裡 00:01:52.572 --> 00:01:55.507 嗯 以此類推 接著我們只要 00:01:55.507 --> 00:01:59.416 從上面複製貼上... 00:01:59.416 --> 00:02:04.080 呃 非常好 讓我們看看 溫斯頓有三個屬性 00:02:04.080 --> 00:02:08.937 每個屬性都有一個關鍵字 位於左手邊 NOTE Paragraph 00:02:08.937 --> 00:02:12.826 另外還有一個數值 在右手邊 00:02:12.826 --> 00:02:16.782 關鍵字所遵循的規則如同 JavaScript 的變量名稱 00:02:16.782 --> 00:02:20.599 不能有空格 必須以字母開頭 00:02:20.599 --> 00:02:24.720 關鍵字的值可以是我們迄今見過 任何類型的值 00:02:24.720 --> 00:02:27.634 可以是數字 也可以是字串 也可能是一個陣列 00:02:27.634 --> 00:02:34.113 甚至可以是一個邏輯符號 因此我們當然可以添加 isCool 其值為 true 00:02:34.126 --> 00:02:38.218 實際上 關鍵字值甚至可以是另一個物件 00:02:38.218 --> 00:02:40.699 像是 出生城市 BirthCity 出生州 BirthState 00:02:40.699 --> 00:02:45.236 這些資訊其實是一件事情的片段 也就是單一地點 00:02:45.236 --> 00:02:48.882 所以 我認為 如果把它存儲為一個物件 可以更有意義 00:02:48.882 --> 00:02:54.786 我要添加一個關鍵字 出生地 再次用大括號表達數值 00:02:54.786 --> 00:02:59.946 括號內輸入城市的關鍵字:"Mountain View" 00:02:59.956 --> 00:03:04.487 以及州名:"California" 00:03:04.487 --> 00:03:07.016 很棒 你現在可以知道 00:03:07.016 --> 00:03:10.900 存儲在物件內的資訊可以非常豐富 00:03:10.903 --> 00:03:15.459 好 現在我們有這個漂亮物件 介紹溫斯頓有關資訊 00:03:15.459 --> 00:03:18.783 讓我們試著去刪除那些 00:03:18.783 --> 00:03:22.576 原來不知道彼此的個別變量 00:03:22.576 --> 00:03:25.999 OK 嗯 哦呃!我們發現有一個錯誤 00:03:25.999 --> 00:03:29.989 因為文字命令參照原來的變量 00:03:29.989 --> 00:03:34.122 我們需要從物件更新變量 00:03:34.122 --> 00:03:40.178 讓我們註釋掉最後三行 這樣就可以一次做一個 00:03:40.178 --> 00:03:43.622 好的 現在講溫斯頓的年齡 WinstonAge 00:03:43.622 --> 00:03:46.006 我們需要做的是替換舊變量 00:03:46.006 --> 00:03:49.603 因此打出 winston 這是變量名稱 00:03:49.603 --> 00:03:54.744 注意 如果我們剛剛就這樣離開 它就是 object object 這是非常錯的 00:03:54.744 --> 00:04:00.779 JavaScript 告訴我們 我們試圖把整個物件轉換列出為一個字串值 00:04:00.779 --> 00:04:04.859 但是 我們其實只是想存取它裡面的年齡 00:04:04.869 --> 00:04:07.044 因此我們要做的是 輸入一個點 00:04:07.044 --> 00:04:10.873 然後輸入屬性的關鍵字 那就是年齡 “age” 00:04:10.873 --> 00:04:13.307 成了!我們有了年齡 00:04:13.307 --> 00:04:18.284 這個叫做 “點號” 這裡我們寫出物件的變量名稱 接著是一個點 00:04:18.284 --> 00:04:21.211 然後是屬性的關鍵字 00:04:21.211 --> 00:04:25.124 好 我們可以做更多 讓我們去掉這註釋 00:04:25.124 --> 00:04:29.037 然後 這個變量我們不叫做 winstonEyes 而稱為 winston.eyes 00:04:29.037 --> 00:04:33.834 另外這個是 winston.likes[0] 00:04:33.834 --> 00:04:37.241 下來是 winston.likes[1] 00:04:37.241 --> 00:04:42.171 最後一個有點複雜 因為 00:04:42.171 --> 00:04:45.741 它是物件 winston 內的物件 (birthplace) 00:04:45.741 --> 00:04:50.004 我們若說 winston.birthplace 00:04:50.004 --> 00:04:56.108 那樣做 birthplace 仍然是整個物件 所以必須用 winston.birthplace.city 00:04:56.108 --> 00:05:01.425 好吧 讓我們做到這裡... winston.birthplace.state 00:05:01.432 --> 00:05:07.941 成了!真的很酷 因為可以在物件中存取資料 00:05:07.941 --> 00:05:09.416 好 00:05:10.863 --> 00:05:13.839 真棒 你可以看到 00:05:13.839 --> 00:05:19.307 物件存儲一堆與目標相關的資訊 00:05:19.307 --> 00:05:21.276 方便之後存取 00:05:21.276 --> 00:05:25.246 如果你學下去 你會發現物件真是棒呀!