JavaScript >> Javascript 文檔 >  >> Tags >> object

現已發布:面向對象 JavaScript 的原理

我很自豪地宣布面向對象 JavaScript 的原則 正在發貨!對於經常閱讀的讀者,這本書是我在 2013 年初出版的自行出版的電子書《JavaScript 中的面向對象編程原理》的印刷版。

電子書的誕生

整個過程是在與 Kate Matsudaira 聊天后開始的。我們正在談論出版的來龍去脈,她設法說服我應該自行出版我的下一本書。經過一番研究,我最終選擇了 Leanpub 作為出版商。我真的很喜歡他們的服務:

  • 可以用 Markdown 編寫書籍
  • 自動生成三種格式的電子書
  • 自動定制產品頁面
  • 處理付款和退款
  • 通過 PayPal 支付版稅
  • 讀者可以選擇他們想要支付的金額
  • 能夠隨時更新電子書並允許現有讀者免費更新

我選擇這個主題是因為我當時正在諮詢,並且正在教授一門關於 JavaScript 面向對象編程的全日課程。雖然我會給與會者留下一份幻燈片的副本,但我覺得這還不足以讓他們記住我們討論過的所有內容。我認為一本以相同順序和相同示例涵蓋主題的配套書籍將非常有用。於是我就開始寫了。

我很快意識到這將是一本很短的書,比我的大多數其他書要短得多。與 面向 Web 開發人員的專業 JavaScript 相比 ,超過 900 頁,這本書將在 100 頁以下。這讓我很高興,因為我知道 900 頁可能令人生畏。我也越來越喜歡專注於特定主題的短書。

不輸入澱粉

電子書完成後,我認為現有出版商將其作為實體書出版的可能性不大。大多數出版商想要大約 200 頁。我想如果有足夠的興趣,我也會嘗試自行出版實體書,但我會等著看反應如何。

去年,我在 Fluent 與 No Starch Press 的 Bill Pollack 進行了一次對話。我向他解釋了我在做什麼,他分享了無澱粉如何處理出版。我真的很喜歡他描述的老派方法:嚴肅的文案和技術編輯,微調主題和語氣,以及每年推出少量高質量書籍的方法。我們握手離開,如果他喜歡他所讀的內容,我們會再談。

讀完這本電子書後,比爾認為繼續創作一本實體書是值得的。 No Starch 不是第一個接觸我的出版商,但他們絕對覺得自己是對的。我最大的擔憂之一是能否繼續在 Leanpub 上銷售,這樣我就可以履行對已經購買電子書的人的承諾。在其他出版商說我必須取消 Leanpub 產品的地方,No Starch 允許我繼續這樣做。

與 No Starch 的人們一起工作很棒,這讓我想起了十年前的出版情況。文案編輯非常棒,真的使我的很多敘述變得平滑。 Angus Croll 的技術編輯非常有用,而且非常挑剔(說真的,如果你認為你的技術編輯不挑剔,你需要找一個新的)。還有封面設計,嗯,我高興極了(主題是 JavaScript 作為驅動 Web 和服務器的引擎)。

Code Lindley 欣然同意為 No Starch 版本寫前言。

這本書是什麼?

首先,這本書是我自己出版的電子書的印刷版,但有實際的副本編輯、技術編輯和專業圖形。涵蓋的主題是相同的,並且大多以相同的方式涵蓋(無澱粉版本在某些地方有額外的說明)。作為獎勵,還有 No Starch 電子書版本。

這本書本身就是關於理解 JavaScript 中的對象。主題包括:

  • 原始值和參考值的區別
  • 是什麼讓 JavaScript 函數如此獨特
  • 創建對象的各種方式
  • 使用 ECMAScript 5 的數據屬性和訪問器屬性的區別
  • 如何定義自己的構造函數
  • 如何使用和理解原型
  • 類型和對象的各種繼承模式
  • 如何創建私有和特權對象成員
  • 如何使用 ECMAScript 5 功能防止修改對象

我想用這本書做的一件事就是把 ECMAScript 5 當作 JavaScript 的當前版本。仍然有很多書最終會說“如果你的瀏覽器支持 ECMAScript 5,就這樣做”。我想展望未來,ECMAScript 5 是每個人都使用的最低版本,因此我選擇取消那些限定語句並在整個過程中完全使用 ECMAScript 5 術語。

我還以這樣一種方式編寫了這本書,它既適用於 Web 開發人員,也適用於 Node.js 開發人員。很少提及 Web 瀏覽器或 Node.js,這是有意的,專注於普遍適用的 JavaScript 核心。

總的來說,我為這本書感到非常自豪。我認為它足夠短,不會令人生畏,但足夠密集,你應該對 JavaScript 中的面向對象概念有一個很好且相當深入的理解。雖然我不打算為這種材料製作一本真正的印刷書,但我對結果非常滿意。感謝所有參與其中的人——這是一段有趣的旅程。


Tutorial JavaScript 教程
  1. 編寫一個 swagger.json 文件

  2. 使用 Angular 編寫高效的測試

  3. SailsJS+GraphQL 應用程序的結構

  4. ☝️ 一件事極大地幫助了我學習 React...

  5. 論設計系統

  6. 函數後的 JavaScript 空格

  7. 我有一個工具可以輕鬆地將您的 SVG 文件轉換為暗模式。

  1. Pro 配置文件,動畫英雄,Ex Machina 導航 |模塊星期一 45

  2. 如何:使用搜索響應表格

  3. JavaScript 添加到 JSON 數組 |示例代碼

  4. 在 node.js 中編寫 Azure 函數來實現 webhook

  5. 數組在 reduce()、map() 等內部可用的原因是什麼?

  6. VM126:1 Uncaught (in promise) SyntaxError:Unexpected token e in JSON at position 0 我認為是關於我的防止默認元素

  7. 從 React 到 Web 組件:使用 mobx

  1. 如何使用 NGINX 和 SSL 在 AWS 上部署 Node.js 應用程序

  2. 具有高階組件的可重用狀態

  3. 在 React 中引入 Hooks (useState)

  4. 如何在 Cypress 中上傳文件?