一、類的定義
嚴格的說,JavaScript 是基於對象的編程語言,而不是面向對象的編程語言。
在面向對象的編程語言中(如Java、C++、C#、PHP等),聲明一個類使用 class 關鍵字。
例如:public class Person{}
但是在JavaScript中,沒有聲明類的關鍵字,也沒有辦法對類的訪問權限進行控制。
JavaScript使用函數來定義類。
語法:
function className(){
// 具體操作
}
例如定義一個ren的類:
function ren(name,age){ this.name=name; this.age=age; this.study=function(){ alert('我會學習'); } this.eat=function(){ alert('我會吃飯'); } }
說明:this關鍵字是指當前的對象。
創建對象(類的實例化)
創建對象的過程也是類實例化的過程。
在JavaScript中,創建對象(即類的實例化)使用 new 關鍵字。
語法:
new className();
面向對象編程的基本概念
面向對象編程(Object Oriented Programming,OOP,面向對象程序設計) 的主要思想是把構成問題的各個事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘一個事物在整個解決問題的步驟中的行為。
面向過程就是分析出解決問題所需要的步驟,然后用函數逐步實現,再依次調用就可以了。
面向對象與面向過程是兩種不同的編程思想,沒有哪一種方式絕對完美,需要根據程具體項目來定。比如,開發一個小的軟件或網頁,工程量小,短時間內就可完成,完全可以采用面向過程的開發方式,使用面向對象,反而會增加代碼量,減緩運行效率。
面向過程的編程語言(如C語言)不能創建類和對象,不能用面向對象的方式來開發程序;面向對象的編程語言(如Java、C++、PHP)保留了面向過程的關鍵字和語句,可以采用面向過程的方式來開發程序。
類的繼承
一個類可以繼承另一個類的特征,如同兒子繼承父親的DNA、性格和財產等,與現實生活中的繼承類似。