JavaScript類的定義和實例化
類的定義
嚴格的說,JavaScript 是基于對象的編程語言,而不是面向?qū)ο蟮木幊陶Z言。
在面向?qū)ο蟮木幊陶Z言中(如Java、C++、C#、PHP等),聲明一個類使用 class 關(guān)鍵字。
例如:public class Person{}
但是在JavaScript中,沒有聲明類的關(guān)鍵字,也沒有辦法對類的訪問權(quán)限進行控制。
JavaScript 使用函數(shù)來定義類。
語法:
function className(){
? ? // 具體操作
}
例如,定義一個Person類:
function Person() { this.name=" 張三 "; // 定義一個屬性 name this.sex=" 男 "; // 定義一個屬性 sex this.say=function(){ // 定義一個方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性別是 " + this.sex + "。"); } }
說明:this 關(guān)鍵字是指當(dāng)前的對象。
創(chuàng)建對象(類的實例化)
創(chuàng)建對象的過程也是類實例化的過程。
在JavaScript中,創(chuàng)建對象(即類的實例化)使用 new 關(guān)鍵字。
語法:
new className();
將上面的 Person 類實例化:
var zhangsan=new Person(); zhangsan.say();
運行代碼,輸出如下內(nèi)容:
? ? 嗨!大家好,我的名字是 張三 ,性別是 男 。
定義類時可以設(shè)置參數(shù),創(chuàng)建對象時也可以傳遞相應(yīng)的參數(shù)。
下面,我們將Person類重新定義:
function Person(name,sex) { this.name=name; // 定義一個屬性 name this.sex=sex; // 定義一個屬性 sex this.say=function(){ // 定義一個方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性別是 " + this.sex); } } var zhangsan=new Person("小麗","女"); zhangsan.say();
運行代碼,輸出如下內(nèi)容:
? ? 嗨!大家好,我的名字是 小麗 ,性別是 女 。