程式寫久了,不同的程式語言間除了語法不同外,感覺好像都差不多,除了各程式語言特別強調的功能。所以現在接觸到新的程式語言已經沒有特別的學習動力,都是安裝好執行環境、瞄一下範例就動手寫寫看,除非有特別的需求,已經很少去把程式語言的學習手冊掃一遍。要說沒有好好學習是一種錯,但人性卻總是常常這樣!
最近在寫程式時就出現一些需要釐清的觀念,到底JavaScript的函數呼叫是傳值(Call By Value)還是傳參考(Call By Reference)?之前因為都沒有需要針對傳入的參數進行修改,所以就沒有在意這個問題。
題外話,以前學C語言時,傳值/址可說是搞死不少人,&、*這兩個符號在C語言裡是用的最兇的。回想起來,C語言並沒有所謂的傳參考,因為送到函數之前就要取位址,收參數的函數就要用對應的資料型態記錄位址。雖然是很惱人的語法,但了解用法的人就會覺得這種語法的迷人之處。從硬體控制的角度來說,傳址仍舊是相當實用的語法。