JavaScript類別的定義和實(shí)例化
類別的定義
嚴(yán)格的說,JavaScript 是基於物件的程式語言,而不是物件導(dǎo)向的程式語言。
在物件導(dǎo)向的程式語言中(如Java、C++、C#、PHP等),宣告一個(gè)類別使用 class 關(guān)鍵字。
例如:public class Person{}
但是在JavaScript中,沒有宣告類別的關(guān)鍵字,也沒有辦法控制類別的存取權(quán)。
JavaScript 使用函數(shù)來定義類別。
語法:
function className(){
? ? // 特定動(dòng)作
}
例如,定義一個(gè)Person類別:
function Person() { this.name=" 張三 "; // 定義一個(gè)屬性 name this.sex=" 男 "; // 定義一個(gè)屬性 sex this.say=function(){ // 定義一個(gè)方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性別是 " + this.sex + "。"); } }
說明:this 關(guān)鍵字是指目前的物件。
建立物件(類別的實(shí)例化)
建立物件的過程也是類別實(shí)例化的過程。
在JavaScript中,建立物件(即類別的實(shí)例化)使用 new 關(guān)鍵字。
語法:
new className();
將上面的Person 類別實(shí)例化:
var zhangsan=new Person(); zhangsan.say();
執(zhí)行程式碼,輸出如下內(nèi)容:
? ? 嗨!大家好,我的名字是 張三 ,性別是 男 。
定義類別時(shí)可以設(shè)定參數(shù),建立物件時(shí)也可以傳遞對(duì)應(yīng)的參數(shù)。
下面,我們將Person類別重新定義:
function Person(name,sex) { this.name=name; // 定義一個(gè)屬性 name this.sex=sex; // 定義一個(gè)屬性 sex this.say=function(){ // 定義一個(gè)方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性別是 " + this.sex); } } var zhangsan=new Person("小麗","女"); zhangsan.say();
運(yùn)行程式碼,輸出以下內(nèi)容:
? ? 嗨!大家好,我的名字是 小麗 ,性別是 女 。