引言
初識 JavaScript 對象的時候,我以為 JS 是沒有繼承這種說法的,雖說 JS 是一門面向?qū)ο笳Z言,可是面向?qū)ο蟮囊恍┨匦栽?JS 中并不存在(比如多態(tài),不過嚴格來說也沒有繼承)。這就困惑了我很長的時間,當我學習到 JS 原型的時候,我才發(fā)現(xiàn)了 JS 的新世界。本篇文章講解了 JavaScript new 操作符與對象的關(guān)系、原型和對象關(guān)聯(lián)(也就是俗稱的繼承)的原理,適合有一定基礎(chǔ)的同學閱讀。
一、JavaScript 的類與對象
許多書籍上都會說到如何在 JS 當中定義“類”,通常來講就是使用如下代碼:
1 function foo () {2 this.x = 1;3 this.y = 2;4 }5 var obj = new foo(); //{x:1, y:2}
實際上這一個很糟糕的語言機制,我們首先要明確,在 JS 當中根本沒有“類”這種東西。在了解它之前,我們要先來了解下 JS 的發(fā)展歷史。