潛意識裡也就不會用面向對象的思想去編寫JavaScript代碼,也很少會去深入了解prototype, closures等概念。這導致書寫的代碼經常很糟糕。
對於JavaScript的學習,可能最重要的還是要從思想上認識到JavaScript不是玩具語言。JavaScript的作用遠不止增加點表單驗證,我們可以看看GMail、看看Google Maps,如果開發者們沒有對JavaScript足夠尊敬,是不大可能寫出如此優秀的Web應用的。
JavaScript門檻很低,但門檻低並不意味著容易掌握。一定程度上,JavaScript的入門容易以及其極大的靈活性,使得要掌握 JavaScript變得很難。從純語言上講,我個人的經驗是,學習 JavaScript比學習Java更具挑戰性。我們大多習慣了傳統的面向對象表述方式,一定程度上甚至會認為類、封裝、繼承等概念都得像Java、 C++那樣,可能都從來沒想過沒有class, extend, override等概念也能面向對象。JavaScript的面向對象打破了這種思想上的禁锢:世界是多樣性的,條條大路通羅馬。誇張一點說,深入學習 JavaScript,更多的是一種思想上的挑戰,能活躍思路,擴大視野,甚至改變對世界的看法。
上面所說的這些,無意於誇大JavaScript的作用和難度。每個人都或多或少的會強調自己所學的知識,但在這裡,我希望自己能很客觀的傳遞一個觀點:無論什麼語言,想要精通,都很不容易;如果想學習某門語言,就得從思想上尊敬這門語言,在尊敬的基礎上去學習,才有可能掌握這門語言的精髓。除了JavaScript,再舉個HTML的例子:
經常能聽到這樣的話:HTML多容易,花個一兩天也就會了。我自己也曾這麼認為。但隨著使用HTML經驗的增長,慢慢感覺到, 對於Web前端開發來說,HTML可以說是最難的。HTML4.01規范中的91個元素就如漢字裡的2500個常用字一樣,我們讀完小學後對常用字應該就都認識了,但要用漢字寫篇優秀的文章,卻並不容易。HTML也是這樣,大部分宣稱HTML很容易的開發者,往往只停留在認識body, p, form, table, div, ul等標簽上,對於dl, legend, sub, caption等並非生僻的標簽甚至都不認識。在常用字還認不全的情況下,宣稱HTML很容易,真的很狂妄。(HTML的難度在於如何利用標簽構建出結構 良好且富含語義的代碼,就如寫作文一樣,不能認為認識幾個字就自信能妙筆生花。)
總之,語言無貴賤難易,要從思想上尊敬重視一門語言,才有可能駕馭它,否則,將永遠游離在專業程序員的寶殿之外。