讓我們繼續探索，我們還能利用物件做什麼。
我們回到程式設計裡使用函數的教程。
這程式有「繪製溫斯頓」的函數， 它知道如何繪製溫斯頓，
於所指定的 X 和 Y 座標。
在這裡，我們呼叫「繪製溫斯頓」四次。
每次以不同組合的 X 和 Y 坐標。
當我看到這四組「繪製溫斯頓」的呼叫程式，
是如此相似時，我就想到更方便的方式是，
如果我們能使用一個循環圈， 然後在循環圈裡只叫它一次，
改變這 X 和 Y 每次循環迭代裡的座標。
要做到這個，我們需要找到 一種方法來儲存這些 X 和 Y 位置，
如此才能於一個陣列裡循環它。
目前有兩組的值，所以我們可以有兩個陣列，
一個給 X 的座標和一個給 Y 的座標。
X 的座標可能是 99、 294、101、和 294。
而 Y 的座標我們會有 117，117，316、316。
好了，現在我們可以循環那些 有著我們循環變數 i = 0；
i < x 位置點長度； i++。
如此，我們會按序循環每個 在 x 位置的元素，我們會編寫：
「繪製溫斯頓（x 位置 [i]， y 位置 [i]）」；
好，讓我們來看看利用刪除是否可行...
好棒，那是可行的。
現在我們只要呼叫這個，只用這行代碼， 來編輯「繪製溫斯頓」
但它就會寫在每個
「x 位置」陣列的位置裡。
我們可以在這裡添加更多的值，例如 10，
那麼我們加 1，然後 1， 然後 1，然後 100，然後 1。
現在它看起來稍微有點亂。我不喜歡這樣，
因為這樣很難看得出來哪些 X 與哪些 Y 相關聯。
我要能一眼就看清楚 X 和 Y 的配對組合。
而不必確保我有完美地上下對齊它們，
例如，像是這樣。
所以，我要找出不同的方式來儲存的這些位置。
一個做法是，我們可以將它們儲存為物件。
想想看，每個位置都有兩位信息：
就是 X 和 Y。所以，我們可以有 一個具有 X 和 Y 屬性的物件，
然後我們有一個包含所有 X 和 Y 位置的陣列物件。
讓我們就這麼做。
將變數位置相等於陣列。
但是，每個元素並不是一個號碼， 而是一個物件。
我們有了我們的大括號，然後我們說，
X: 99，Y: 117。
好，我們現在有了其中一個位置在這裡。
然後在這裡我們再添加一個。
X 應該是 294，117，
第三個會是 101，316，
然後最後一個是294和316。
好，現在我們有了一個陣列物件，
而且每個物件都有， X 和 Y 的屬性在裡面。
在我們的循環圈裡，我們將更改 它通過「位置點長度」的迭代。
然後，我們會傳遞物件。
現在它正傳遞所有的物件， 但我們想要傳遞 X 和 Y，
所以我們需要 位置 [i] 點 x 和位置 [i] 點 y。
成功！
現在，我們可以刪除這些舊的陣列集群。
太好了，這樣看起來就整齊多了， 代碼更容易閱讀。
不論何時，只要有容易閱讀的代碼 都是較好的。
這樣也會更容易做添加。 所以，如果我要再添加一個，
我只需同時添加一對， 我們可以說 X 是 200，Y 是 200，
中間在放一個小溫斯頓。
很酷。
現在，我要教你一些比這個更炫的東西。
請注意，我們的函數目前接受兩個位數，
然後使用這兩個數字。
我們可以更改我們的函數， 讓它期待一個物件，
然後它在從該物件裡取得 X 和 Y。
這意味著，在這裡我們可以只傳遞物件。
讓我們來試試。
我們傳遞了物件，現在就壞了。
那是因為我們的函數，仍然是期待兩個物件，
而它只獲得一個。所以我們將它更改為
它將獲得「臉位置」。 現在，我們接到了一個錯誤訊息，
它表示「臉X」未被定義。 那是因為之前我們是以論據在傳遞「臉X」，
但目前它並不存在，我們只會得到一個物件。
所以，我們要做的，就是將物件裡X的位置，
儲存在「臉X」的變數裡。
我們有這個物件， 我們知道這個物件裡有一個X屬性，
所以我們只要將它存儲在「臉X」的變數裡。
我們可以對 Y 做同樣的事情， 這樣「臉 Y 等於臉位置點 y」。
成功！
你也知道，其餘的那些函數 會使用「臉X」和「臉Y」。
我們必須確保拼寫的正確性，
如果寫的是 xx,，就會無效。
因為那與我們陣列物件裡的並不一致。 所以它需要能相配。
這樣就滿整齊的。現在你可以有陣列物件，
你可以有附帶物件的函數。
你會發現你的程式，變的非常強大，
因為它們數據的構建方式。
特別是因為它常常將 X 和 Y 配對。
我想你會發現，
它們在這兒的繪製及動畫程式裡，特別好用。
所以，快試試吧！ 祝你玩得開心！