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