,而現在我一直在開發JavaScript應用程序,通常小的腳本來完成簡單的任務,而且還使用Dean Edwards' base2 library創建僞經典OO類一個相當龐大而複雜的應用程序寫一個整潔,靈活複雜的JavaScript應用程序與繼承,...在JavaScript中。如何使用原型繼承
的BASE2庫擔任我非常好,主要是因爲它使我能夠遵循經典OO範式,我很熟悉。我還知道可以用來構建更強大和成熟的JavaScript應用程序的其他幾個框架(例如,backbone.js)。但我始終認爲,這種類型的圖書館是一種'欺騙'的方式,構建一種使用語言實際上不適合的原則來編寫代碼的方法。
我一直在閱讀不同的方式來定義對象/函數,實例化它們並使用原型繼承實現多態。這實際上是語言在基本層面的工作原理,我覺得我應該利用這一點,而不是決定它是討厭還是奇怪,並試圖找到一種方法來按照我習慣的方式來做事情(經典的OO方式)。
因此,看看不使用這種類型的庫的應用程序,似乎有很多方法來編寫您的應用程序,而對於傳統的通用語言,如Java,C++,...構建應用程序的正確方法似乎更清楚地定義(區分好的代碼和錯誤代碼要容易得多)。如果有人明天問我:「開始爲我開發projectX」,我不知道如何開始定義和構造我的對象,我可以肯定,稍後重組時不會再回頭咬我整個東西。
會是什麼專業的複雜的JS應用骨架的樣子,使用原型繼承,所以不使用任何類型的庫用於模仿經典OO,假設一個簡單的MVC類型的應用程序,但很容易地擴展到更復雜的地步。如何定義我的對象?如何保持對象/「類」組合在一起(命名空間)?換句話說:如何做到這一點沒有結束一個混亂沒有人瞭解?
的主要作者爲什麼不花一些時間在像骨幹,分機,子玉,角,等當前流行的框架東張西望?即使你不喜歡它們,這也是一種接觸建築模式的簡單方法。 – Pointy
我確實看過其中的一些,但由於存在很多差異,我仍然不清楚最佳的解決方法。也許這太主觀了一個問題。 – Asciiom
嗯,這是相當主觀的 - 我個人覺得我很少使用JavaScript的繼承,因爲我更喜歡通過語言的功能方面實現代碼重用。另外,我個人不喜歡客戶端應用程序邏輯的想法;我有很多*客戶端代碼,但它是關於客戶端功能,而不是應用程序邏輯。 **但那只是我的個人情況和意見。**我喜歡閱讀所有這些框架的功能,因爲我喜歡瞭解設計方法和編碼技術。 – Pointy