1 00:00:01,333 --> 00:00:05,203 我寫了一個程式要告訴你們關於 溫斯頓的生動細節 2 00:00:05,213 --> 00:00:08,669 但是不會說很多 因為溫斯頓喜歡保持神秘 3 00:00:08,669 --> 00:00:11,590 這就是溫斯頓的風格 4 00:00:11,590 --> 00:00:13,874 讓我們來看看我怎麼寫這個程式 5 00:00:13,874 --> 00:00:17,274 我先在程式上方創造一些變量 (varaible) 來儲存溫斯頓個人資料 6 00:00:17,274 --> 00:00:22,075 第一個變量是數值 - 溫斯頓的年齡 第二個變量是字串 - 他的眼睛顏色 7 00:00:22,075 --> 00:00:26,107 第三個變量是字串陣列 - 他喜歡做的事 8 00:00:26,107 --> 00:00:31,516 而... 最後二個變量是字串 - 描述他的出生地 9 00:00:31,516 --> 00:00:36,730 然後從這裡 我用文字命令 (text command) 和變量名稱寫出這些 10 00:00:36,730 --> 00:00:42,179 當然對於字串陣列 若要存取陣列元素 必須使用中括號 11 00:00:42,179 --> 00:00:43,270 不錯 12 00:00:43,270 --> 00:00:48,866 現在 所有五個變量都描述同一件事: 溫斯頓 13 00:00:48,866 --> 00:00:52,268 但是變量彼此之間不知道它們都和溫斯頓有關 14 00:00:52,278 --> 00:00:57,592 我們知道... Javascript 中有一個較好的酷方法 15 00:00:57,592 --> 00:01:01,149 來儲存眾多相關的資訊 16 00:01:01,149 --> 00:01:03,645 它叫做物件 (Object) 17 00:01:03,645 --> 00:01:06,385 物件意思是 與其使用五個變量 18 00:01:06,385 --> 00:01:11,923 只使用一個單獨變量 就能儲存所有資訊 真的很酷 19 00:01:11,923 --> 00:01:14,439 讓我們來試試溫斯頓的資料 20 00:01:14,439 --> 00:01:18,257 首先 宣告變量 把它叫做溫斯頓 winston 21 00:01:18,257 --> 00:01:23,399 然後 輸入一個開放的大括號 是彎曲而不是方形的括號 22 00:01:23,399 --> 00:01:25,547 以及一個分號 23 00:01:25,547 --> 00:01:31,609 我們剛剛造了一個物件 但物件內尚無任何東西 24 00:01:31,609 --> 00:01:35,588 若要添加資料 必須加上屬性 (property) 25 00:01:35,588 --> 00:01:41,276 屬性是一個關鍵字 (Key) 和一個數值 例如 年齡 age 為19 26 00:01:41,276 --> 00:01:44,479 好 至於眼睛 我們要先加上一個逗號 27 00:01:44,479 --> 00:01:48,039 然後眼睛為 "black" 好的 酷 28 00:01:48,039 --> 00:01:52,572 目前為止 溫斯頓有兩項屬性在物件裡 29 00:01:52,572 --> 00:01:55,507 嗯 以此類推 接著我們只要 30 00:01:55,507 --> 00:01:59,416 從上面複製貼上... 31 00:01:59,416 --> 00:02:04,080 呃 非常好 讓我們看看 溫斯頓有三個屬性 32 00:02:04,080 --> 00:02:08,937 每個屬性都有一個關鍵字 位於左手邊 33 00:02:08,937 --> 00:02:12,826 另外還有一個數值 在右手邊 34 00:02:12,826 --> 00:02:16,782 關鍵字所遵循的規則如同 JavaScript 的變量名稱 35 00:02:16,782 --> 00:02:20,599 不能有空格 必須以字母開頭 36 00:02:20,599 --> 00:02:24,720 關鍵字的值可以是我們迄今見過 任何類型的值 37 00:02:24,720 --> 00:02:27,634 可以是數字 也可以是字串 也可能是一個陣列 38 00:02:27,634 --> 00:02:34,113 甚至可以是一個邏輯符號 因此我們當然可以添加 isCool 其值為 true 39 00:02:34,126 --> 00:02:38,218 實際上 關鍵字值甚至可以是另一個物件 40 00:02:38,218 --> 00:02:40,699 像是 出生城市 BirthCity 出生州 BirthState 41 00:02:40,699 --> 00:02:45,236 這些資訊其實是一件事情的片段 也就是單一地點 42 00:02:45,236 --> 00:02:48,882 所以 我認為 如果把它存儲為一個物件 可以更有意義 43 00:02:48,882 --> 00:02:54,786 我要添加一個關鍵字 出生地 再次用大括號表達數值 44 00:02:54,786 --> 00:02:59,946 括號內輸入城市的關鍵字:"Mountain View" 45 00:02:59,956 --> 00:03:04,487 以及州名:"California" 46 00:03:04,487 --> 00:03:07,016 很棒 你現在可以知道 47 00:03:07,016 --> 00:03:10,900 存儲在物件內的資訊可以非常豐富 48 00:03:10,903 --> 00:03:15,459 好 現在我們有這個漂亮物件 介紹溫斯頓有關資訊 49 00:03:15,459 --> 00:03:18,783 讓我們試著去刪除那些 50 00:03:18,783 --> 00:03:22,576 原來不知道彼此的個別變量 51 00:03:22,576 --> 00:03:25,999 OK 嗯 哦呃!我們發現有一個錯誤 52 00:03:25,999 --> 00:03:29,989 因為文字命令參照原來的變量 53 00:03:29,989 --> 00:03:34,122 我們需要從物件更新變量 54 00:03:34,122 --> 00:03:40,178 讓我們註釋掉最後三行 這樣就可以一次做一個 55 00:03:40,178 --> 00:03:43,622 好的 現在講溫斯頓的年齡 WinstonAge 56 00:03:43,622 --> 00:03:46,006 我們需要做的是替換舊變量 57 00:03:46,006 --> 00:03:49,603 因此打出 winston 這是變量名稱 58 00:03:49,603 --> 00:03:54,744 注意 如果我們剛剛就這樣離開 它就是 object object 這是非常錯的 59 00:03:54,744 --> 00:04:00,779 JavaScript 告訴我們 我們試圖把整個物件轉換列出為一個字串值 60 00:04:00,779 --> 00:04:04,859 但是 我們其實只是想存取它裡面的年齡 61 00:04:04,869 --> 00:04:07,044 因此我們要做的是 輸入一個點 62 00:04:07,044 --> 00:04:10,873 然後輸入屬性的關鍵字 那就是年齡 “age” 63 00:04:10,873 --> 00:04:13,307 成了!我們有了年齡 64 00:04:13,307 --> 00:04:18,284 這個叫做 “點號” 這裡我們寫出物件的變量名稱 接著是一個點 65 00:04:18,284 --> 00:04:21,211 然後是屬性的關鍵字 66 00:04:21,211 --> 00:04:25,124 好 我們可以做更多 讓我們去掉這註釋 67 00:04:25,124 --> 00:04:29,037 然後 這個變量我們不叫做 winstonEyes 而稱為 winston.eyes 68 00:04:29,037 --> 00:04:33,834 另外這個是 winston.likes[0] 69 00:04:33,834 --> 00:04:37,241 下來是 winston.likes[1] 70 00:04:37,241 --> 00:04:42,171 最後一個有點複雜 因為 71 00:04:42,171 --> 00:04:45,741 它是物件 winston 內的物件 (birthplace) 72 00:04:45,741 --> 00:04:50,004 我們若說 winston.birthplace 73 00:04:50,004 --> 00:04:56,108 那樣做 birthplace 仍然是整個物件 所以必須用 winston.birthplace.city 74 00:04:56,108 --> 00:05:01,425 好吧 讓我們做到這裡... winston.birthplace.state 75 00:05:01,432 --> 00:05:07,941 成了!真的很酷 因為可以在物件中存取資料 76 00:05:07,941 --> 00:05:09,416 好 77 00:05:10,863 --> 00:05:13,839 真棒 你可以看到 78 00:05:13,839 --> 00:05:19,307 物件存儲一堆與目標相關的資訊 79 00:05:19,307 --> 00:05:21,276 方便之後存取 80 00:05:21,276 --> 00:05:25,246 如果你學下去 你會發現物件真是棒呀!