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