JavaScript繼承詳解
面向對象與基於對象
幾乎每個開發人員都有面嚮對象語言(比如C++、C#、Java)的開發經驗。 在傳統面向對象的語言中,有兩個非常重要的概念 - 類和實例。 類定義了一類事物公共的行爲和方法;而實例則是類的一個具體實現。 我們還知道,面向對象編程有三個重要的概念 - 封裝、繼承和多態。
但是在JavaScript的世界中,所有的這一切特性似乎都不存在。 因爲JavaScript本身不是面向對象的語言,而是基於對象的語言。 這裏面就有一些有趣的特性,比如JavaScript中所有事物都是對象, 包括字符串、數組、日期、數字,甚至是函數
JavaScript繼承的實現
正因爲JavaScript本身沒有完整的類和繼承的實現,並且我們也看到通過手工實現的方式存在很多問題, 因此對於這個富有挑戰性的任務網上已經有很多實現了:
- Douglas Crockford - Prototypal Inheritance in JavaScript
- Douglas Crockford - Classical Inheritance in JavaScript
- John Resig - Simple JavaScript Inheritance
- Dean Edwards - A Base Class for JavaScript Inheritance
- Prototype
- Mootools
- Extjs
這個系列的文章將會逐一深入分析這些實現,最終達到對JavaScript中如何實現類和繼承有一個深入的瞭解。
本系列文章列表:- JavaScript繼承詳解
- JavaScript繼承詳解(二)
- JavaScript繼承詳解(三)
- JavaScript繼承詳解(四)
- JavaScript繼承詳解(五)
- JavaScript繼承詳解(六)