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