javascript 高級程序設計第四版是一本深入學習javascript的好書。隨著web應用的日益普及,javascript也變得越來越重要。本書作為javascript的經典教材,在深入剖析了javascript語言基礎的同時,也探討了javascript的高級應用,例如原型、閉包、異步編程、模塊化,以及設計模式。
function Foo() {} var f1 = new Foo(); var f2 = new Foo(); console.log(f1.constructor == Foo); //true console.log(f1.constructor === f2.constructor); //true
javascript語言基礎中,本書詳細講解了數據類型、變量、函數、運算符、流程控制等基本概念,如下面演示的constructor屬性,就是javascript的分類和多態的起點。通過理解本書所授,在實際應用javascript中,更能掌握好javascript語言基礎,避免低級錯誤。
function inherit(p) { if (p == null) throw TypeError(); if (Object.create) return Object.create(p); var t = typeof p; if (t !== "object" && t !== "function") throw TypeError(); function f() {}; f.prototype = p; return new f(); }
我們知道javascript屬于原型繼承范疇,傳統的常規繼承模式在javascript中并不合適,因此javascript獨特的原型繼承機制顯得尤為重要。inherit函數就是javascript高級應用部分介紹的例子之一,它幫助我們解決了javascript原型繼承時的諸多問題,例如防止原型對象被修改。如此函數的實現經過規范與調試,就可以方便應用于實際場景。
function Promise(fn) { var value = null, callbacks = []; this.then = function (onFulfilled) { callbacks.push(onFulfilled); return this; }; function resolve(value) { setTimeout(function () { callbacks.forEach(function (callback) { callback(value); }); }, 0); } fn(resolve); }
本書還講解了javascript的異步編程機制,例如一次性事件(one-time event)、連續事件(continuous event)和定時器(timer)等等。我們知道在javascript中,異步處理是很常見的一個場景,例如網絡請求和事件響應,而Promise則是實現異步編程的最佳選擇之一。Promise提供了良好的異步編程接口,例如then方法、回調函數,以及執行規則等等,是我們在實際應用javascript時不可或缺的一部分。
javascript 高級程序設計第四版穿越了javascript歷史的脈絡,從對javascript語言基礎的逐一講解到對javascript的高級應用探討,再到對javascript設計模式的講解,無不深入淺出。這本書不僅是javascript學習者的必讀佳作,也是javascript高級應用工程師的必備工具。