曾經有一個叫做 Douglas Crockford 的人,他在 JavaScript 社區被稱作 “JavaScript 大叔”。JavaScript 大叔將自己的一生都獻給了 JavaScript 這門動態編程語言,他是 JavaScript 社區的先鋒之一,也是當下最知名的一位 JavaScript 專家。他不僅創造了 JSLint 工具,還在各種技術論壇、博客、演講中分享了大量的 JavaScript 知識。本文將介紹 JavaScript 大叔的一些創新想法和思想實踐。
JavaScript 大叔親手寫下的 JSLint ,去除了 JavaScript 語言的一些不良設計方案,是非常出色的一個 lint 工具。直到現在,JSLint 仍然是非常受歡迎的,其思想也成為了 JavaScript 書寫規范的重要參考。大概有不少讀者都提過代碼規范這個問題,但是卻沒有真正的去做,其中的困難就在于難以去定義規范。而 JavaScript 大叔用他的哲學角度去思考這個問題,從而創造了 JSLint 這樣一個工具。
JavaScript 大叔很注重開源。他認為開源一方面可以促進技術的共享和進步,另一方面也可以對自己的技術產生持久影響。他經常分享自己的想法和代碼,這使得他擁有極高的影響力,非常尊重的 JavaScript 網站 JSLint.com 也是由他親自維護的。
if(typeof Object.create !== ‘function’) { Object.create = function(o) { function F() {} F.prototype = o; return new F(); }; }
上面這段代碼就是 JavaScript 大叔在 2006 年發布的實現原型繼承的方法。他主張使用原型繼承而不是經典繼承,是因為原型繼承在 JavaScript 中是天然的、自然的,而經典繼承則與 JavaScript 的本質不相符合。這個方法的意義在于,為那些不能訪問 IE8 或以下版本瀏覽器的開發者提供了一個方便、可靠的原型繼承方法,這也奠定了類庫模式的基礎。
JavaScript 大叔還特別關注 JavaScript 的安全問題。他在 Esprima 中定義了安全子集SafeSubset
,強制對所有的代碼求值運行基于 Subset 的安全代碼。這個工具能夠幫助開發者避免過于依賴不可靠的代碼和庫,降低用戶泄露隱私信息的風險。同時,它也可以辨別某個代碼片段是否涉及到危險函數,從而提高代碼質量,成為編寫更安全 Web 應用的得力工具。
盡管 JavaScript 大叔不再是誰都認識的人,但是他依然影響著無數的開發者和大眾,他的貢獻為 JavaScript 社區奠定了一個優質的基礎,真正幫助 JavaScript 成為了如今世界上最重要的編程語言之一。