跳到主要內容

文章

目前顯示的是 八月, 2012的文章

[分享] [].slice 在 JavaScript 神奇應用

[].slice function on JavaScript

這幾天學習 CoffeeScript,裡面有許多好玩的 syntax sugar ,當然 JavaScript 原生不會有這種產物,很明顯是沿用 Python, Ruby 語言的優雅之處。

裡面有個部分有個奇妙的使用方式,介紹如下,

Coffee code
awardMedals = (first, second, others...) -> gold = first silver = second rest = others
編譯後的 JavaScript code
awardMedals = function() { var first, others, second; first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? __slice.call(arguments, 2) : []; gold = first; silver = second; return rest = others; };
裡面用到了有趣的 Array.slice ,用模擬的方式來實踐 others… 這樣的語法糖衣。
原理說明 原理是直接採用 Array.slice ,通常這個方法都是用在陣列裡面,不過在這邊是用來做傳參考參數的指定。

Array 這個原生 Object 可以直接使用 [] 來使用,
others = (3 <= arguments.length) ? __slice.call(arguments, 2) : [];
從呼叫的方法 (function) 直接使用 arguments 取得所有帶進去 function 中的參數,傳進去的參數數目必需要大於限制,這邊是 3 ,接著才會將第三個以後傳入的參數做分割。

這邊使用了 call 這個方法,不太曉得的人可以,call 會直接執行此 slice 這個方法。

使用 call 這樣的方式執行,第一個傳遞進去的變數,就是 this ,需要告訴這個方法,呼叫者是誰 (傳說中的 JavaScript, what is this)。

後面就可以依序帶入原本 slice 所需要的參數,這邊就直接帶入 2 ,會將將前面…

[分享] Mac installed software 安裝軟體清單

Mac installed software 最近也用了 Mac 一段時間,分享一下目前 Mac 裡面到底安裝了哪些東西,順便整理一下自己的硬碟,因為是自己要使用的軟體清單列表,就不一一描述功能,如果對於軟體名稱不熟悉,可以透過 Google 詢問。
如果有更好用的軟體,歡迎討論
Sublime text 2 Text editorAdium instanst messageYahoo 中文輸入法 中文輸入法Welly Connect to BBSAppCleaner remove application completelyGoogle Chrome Chrome browserMozilla Firefox Firefox BrowserEvernote Evernote for MacSkitch Screen CapatureiTerm2 terminal connect tooliwork iWork 2012MS Office Microsoft Office for MacXcode XcodeAdobe Reader PDF ReaderAdobe PhotoShop Adobe PhotoShopMacTubs YouTube video downloaderVLC Player VLC Player for Streaming videoDivvy window align tool[flip for Mac - wmv player]SmartGitFilezillaWindows 遠端桌面CaffinehomebrewDropbox clientGoogle 雲端硬碟Picasa for MacSkypeSynergyColloquy - connect to IRCSequel Pro MySQL client toolkeka  - 解壓縮軟體, 軟體介紹