[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.33,0:00:05.20,Default,,0000,0000,0000,,我寫了一個程式要告訴你們關於\N溫斯頓的生動細節 Dialogue: 0,0:00:05.21,0:00:08.67,Default,,0000,0000,0000,,但是不會說很多 因為溫斯頓喜歡保持神秘 Dialogue: 0,0:00:08.67,0:00:11.59,Default,,0000,0000,0000,,這就是溫斯頓的風格 Dialogue: 0,0:00:11.59,0:00:13.87,Default,,0000,0000,0000,,讓我們來看看我怎麼寫這個程式 \N Dialogue: 0,0:00:13.87,0:00:17.27,Default,,0000,0000,0000,,我先在程式上方創造一些變量 (varaible) \N來儲存溫斯頓個人資料 Dialogue: 0,0:00:17.27,0:00:22.08,Default,,0000,0000,0000,,第一個變量是數值 - 溫斯頓的年齡\N第二個變量是字串 - 他的眼睛顏色 Dialogue: 0,0:00:22.08,0:00:26.11,Default,,0000,0000,0000,,第三個變量是字串陣列 - 他喜歡做的事 Dialogue: 0,0:00:26.11,0:00:31.52,Default,,0000,0000,0000,,而... 最後二個變量是字串 - 描述他的出生地 Dialogue: 0,0:00:31.52,0:00:36.73,Default,,0000,0000,0000,,然後從這裡 我用文字命令 (text command) \N和變量名稱寫出這些 Dialogue: 0,0:00:36.73,0:00:42.18,Default,,0000,0000,0000,,當然對於字串陣列 若要存取陣列元素 \N必須使用中括號 Dialogue: 0,0:00:42.18,0:00:43.27,Default,,0000,0000,0000,,不錯 Dialogue: 0,0:00:43.27,0:00:48.87,Default,,0000,0000,0000,,現在 所有五個變量都描述同一件事:\N溫斯頓 Dialogue: 0,0:00:48.87,0:00:52.27,Default,,0000,0000,0000,,但是變量彼此之間不知道它們都和溫斯頓有關 Dialogue: 0,0:00:52.28,0:00:57.59,Default,,0000,0000,0000,,我們知道... Javascript 中有一個較好的酷方法 Dialogue: 0,0:00:57.59,0:01:01.15,Default,,0000,0000,0000,,來儲存眾多相關的資訊 Dialogue: 0,0:01:01.15,0:01:03.64,Default,,0000,0000,0000,,它叫做物件 (Object) Dialogue: 0,0:01:03.64,0:01:06.38,Default,,0000,0000,0000,,物件意思是 與其使用五個變量 \N Dialogue: 0,0:01:06.38,0:01:11.92,Default,,0000,0000,0000,,只使用一個單獨變量 就能儲存所有資訊 \N真的很酷 Dialogue: 0,0:01:11.92,0:01:14.44,Default,,0000,0000,0000,,讓我們來試試溫斯頓的資料 Dialogue: 0,0:01:14.44,0:01:18.26,Default,,0000,0000,0000,,首先 宣告變量 把它叫做溫斯頓 winston Dialogue: 0,0:01:18.26,0:01:23.40,Default,,0000,0000,0000,,然後 輸入一個開放的大括號 \N是彎曲而不是方形的括號 Dialogue: 0,0:01:23.40,0:01:25.55,Default,,0000,0000,0000,,以及一個分號 Dialogue: 0,0:01:25.55,0:01:31.61,Default,,0000,0000,0000,,我們剛剛造了一個物件 但物件內尚無任何東西 Dialogue: 0,0:01:31.61,0:01:35.59,Default,,0000,0000,0000,,若要添加資料 必須加上屬性 (property) Dialogue: 0,0:01:35.59,0:01:41.28,Default,,0000,0000,0000,,屬性是一個關鍵字 (Key) 和一個數值 \N例如 年齡 age 為19 Dialogue: 0,0:01:41.28,0:01:44.48,Default,,0000,0000,0000,,好 至於眼睛 我們要先加上一個逗號 Dialogue: 0,0:01:44.48,0:01:48.04,Default,,0000,0000,0000,,然後眼睛為 "black" 好的 酷 Dialogue: 0,0:01:48.04,0:01:52.57,Default,,0000,0000,0000,,目前為止 溫斯頓有兩項屬性在物件裡 Dialogue: 0,0:01:52.57,0:01:55.51,Default,,0000,0000,0000,,嗯 以此類推 接著我們只要 Dialogue: 0,0:01:55.51,0:01:59.42,Default,,0000,0000,0000,,從上面複製貼上... Dialogue: 0,0:01:59.42,0:02:04.08,Default,,0000,0000,0000,,呃 非常好 讓我們看看 溫斯頓有三個屬性 Dialogue: 0,0:02:04.08,0:02:08.94,Default,,0000,0000,0000,,每個屬性都有一個關鍵字 位於左手邊 Dialogue: 0,0:02:08.94,0:02:12.83,Default,,0000,0000,0000,,另外還有一個數值 在右手邊 Dialogue: 0,0:02:12.83,0:02:16.78,Default,,0000,0000,0000,,關鍵字所遵循的規則如同\NJavaScript 的變量名稱 Dialogue: 0,0:02:16.78,0:02:20.60,Default,,0000,0000,0000,,不能有空格 必須以字母開頭 Dialogue: 0,0:02:20.60,0:02:24.72,Default,,0000,0000,0000,,關鍵字的值可以是我們迄今見過 任何類型的值 Dialogue: 0,0:02:24.72,0:02:27.63,Default,,0000,0000,0000,,可以是數字 也可以是字串 \N也可能是一個陣列 Dialogue: 0,0:02:27.63,0:02:34.11,Default,,0000,0000,0000,,甚至可以是一個邏輯符號\N因此我們當然可以添加 isCool 其值為 true Dialogue: 0,0:02:34.13,0:02:38.22,Default,,0000,0000,0000,,實際上 關鍵字值甚至可以是另一個物件 Dialogue: 0,0:02:38.22,0:02:40.70,Default,,0000,0000,0000,,像是 出生城市 BirthCity 出生州 BirthState Dialogue: 0,0:02:40.70,0:02:45.24,Default,,0000,0000,0000,,這些資訊其實是一件事情的片段 \N也就是單一地點 Dialogue: 0,0:02:45.24,0:02:48.88,Default,,0000,0000,0000,,所以 我認為 如果把它存儲為一個物件\N可以更有意義 Dialogue: 0,0:02:48.88,0:02:54.79,Default,,0000,0000,0000,,我要添加一個關鍵字 出生地\N再次用大括號表達數值 Dialogue: 0,0:02:54.79,0:02:59.95,Default,,0000,0000,0000,,括號內輸入城市的關鍵字:"Mountain View" Dialogue: 0,0:02:59.96,0:03:04.49,Default,,0000,0000,0000,,以及州名:"California" Dialogue: 0,0:03:04.49,0:03:07.02,Default,,0000,0000,0000,,很棒 你現在可以知道 Dialogue: 0,0:03:07.02,0:03:10.90,Default,,0000,0000,0000,,存儲在物件內的資訊可以非常豐富 Dialogue: 0,0:03:10.90,0:03:15.46,Default,,0000,0000,0000,,好 現在我們有這個漂亮物件\N介紹溫斯頓有關資訊 Dialogue: 0,0:03:15.46,0:03:18.78,Default,,0000,0000,0000,,讓我們試著去刪除那些 Dialogue: 0,0:03:18.78,0:03:22.58,Default,,0000,0000,0000,,原來不知道彼此的個別變量 Dialogue: 0,0:03:22.58,0:03:25.100,Default,,0000,0000,0000,,OK 嗯 哦呃!我們發現有一個錯誤 Dialogue: 0,0:03:25.100,0:03:29.99,Default,,0000,0000,0000,,因為文字命令參照原來的變量 Dialogue: 0,0:03:29.99,0:03:34.12,Default,,0000,0000,0000,,我們需要從物件更新變量 Dialogue: 0,0:03:34.12,0:03:40.18,Default,,0000,0000,0000,,讓我們註釋掉最後三行 這樣就可以一次做一個 Dialogue: 0,0:03:40.18,0:03:43.62,Default,,0000,0000,0000,,好的 現在講溫斯頓的年齡 WinstonAge \N Dialogue: 0,0:03:43.62,0:03:46.01,Default,,0000,0000,0000,,我們需要做的是替換舊變量 Dialogue: 0,0:03:46.01,0:03:49.60,Default,,0000,0000,0000,,因此打出 winston 這是變量名稱 Dialogue: 0,0:03:49.60,0:03:54.74,Default,,0000,0000,0000,,注意 如果我們剛剛就這樣離開 \N它就是 object object 這是非常錯的 Dialogue: 0,0:03:54.74,0:04:00.78,Default,,0000,0000,0000,,JavaScript 告訴我們\N我們試圖把整個物件轉換列出為一個字串值 Dialogue: 0,0:04:00.78,0:04:04.86,Default,,0000,0000,0000,,但是 我們其實只是想存取它裡面的年齡 Dialogue: 0,0:04:04.87,0:04:07.04,Default,,0000,0000,0000,,因此我們要做的是 輸入一個點 Dialogue: 0,0:04:07.04,0:04:10.87,Default,,0000,0000,0000,,然後輸入屬性的關鍵字 那就是年齡 “age” Dialogue: 0,0:04:10.87,0:04:13.31,Default,,0000,0000,0000,,成了!我們有了年齡 Dialogue: 0,0:04:13.31,0:04:18.28,Default,,0000,0000,0000,,這個叫做 “點號” \N這裡我們寫出物件的變量名稱 接著是一個點 Dialogue: 0,0:04:18.28,0:04:21.21,Default,,0000,0000,0000,,然後是屬性的關鍵字 Dialogue: 0,0:04:21.21,0:04:25.12,Default,,0000,0000,0000,,好 我們可以做更多\N讓我們去掉這註釋 Dialogue: 0,0:04:25.12,0:04:29.04,Default,,0000,0000,0000,,然後 這個變量我們不叫做 winstonEyes \N而稱為 winston.eyes Dialogue: 0,0:04:29.04,0:04:33.83,Default,,0000,0000,0000,,另外這個是 winston.likes[0] Dialogue: 0,0:04:33.83,0:04:37.24,Default,,0000,0000,0000,,下來是 winston.likes[1] Dialogue: 0,0:04:37.24,0:04:42.17,Default,,0000,0000,0000,,最後一個有點複雜 因為 Dialogue: 0,0:04:42.17,0:04:45.74,Default,,0000,0000,0000,,它是物件 winston 內的物件 (birthplace) Dialogue: 0,0:04:45.74,0:04:50.00,Default,,0000,0000,0000,,我們若說 winston.birthplace Dialogue: 0,0:04:50.00,0:04:56.11,Default,,0000,0000,0000,,那樣做 birthplace 仍然是整個物件\N所以必須用 winston.birthplace.city Dialogue: 0,0:04:56.11,0:05:01.42,Default,,0000,0000,0000,,好吧 讓我們做到這裡...\Nwinston.birthplace.state Dialogue: 0,0:05:01.43,0:05:07.94,Default,,0000,0000,0000,,成了!真的很酷 因為可以在物件中存取資料 Dialogue: 0,0:05:07.94,0:05:09.42,Default,,0000,0000,0000,,好 Dialogue: 0,0:05:10.86,0:05:13.84,Default,,0000,0000,0000,,真棒 你可以看到 Dialogue: 0,0:05:13.84,0:05:19.31,Default,,0000,0000,0000,,物件存儲一堆與目標相關的資訊 Dialogue: 0,0:05:19.31,0:05:21.28,Default,,0000,0000,0000,,方便之後存取 Dialogue: 0,0:05:21.28,0:05:25.25,Default,,0000,0000,0000,,如果你學下去 你會發現物件真是棒呀!