互聯網開(kāi)發&品牌全案設計(jì)
12年(nián) 實戰經驗,品質服務
程序中面向對(duì)象的(de)思想相(xiàng)信所有(yǒu)的(de)程序員(yuán)都(dōu)不(bù)會(huì)陌生(shēng),JavaScript程序中同樣有(yǒu)對(duì)象這(zhè)一(yī)說(shuō)法。可(kě)能(néng)很(hěn)多(duō♦)初學者分(fēn)不(bù)清。下(xià)面蘇州網站(zhàn)制(zhì)作(zuò)的(de)小(xiǎo)編帶領大₹(dà)家(jiā)一(yī)起來(lái)理(lǐ)一(yī)理(lǐ)。
javascript中對(duì)象的(de)屬性和(hé)方法私有(yǒu)性都(dōu)是(shì)利用(yòng)函數(shù)可(kě)§以提供局部作(zuò)用(yòng)域的(de)特性來(lái)實現(xiàn)的(de)。
var Obj={};//聲明(míng)一(yī)個(gè)對(duì)象;
(function(){
var name="這(zhè)是(shì)私有(yǒu)屬性";//此為(wèi)函數(shù)局部變量;
var i=0;
function index(){return i+=1;}
function getName(){return name;}//外(wài)部訪問(wèn)私₽有(yǒu)屬性接口
Obj={
Id:index,
getN:getName,
getName:getName
}
}())//執行(xíng)返回私有(yǒu)屬性值;
Obj.getN();//輸出"這(zhè)是(shì)私有(yǒu)屬性"
Obj.Id()輸出1
上(shàng)面的(de)index和(hé)getName就(jiù)是(shì)對(duì)象的(de)私有(yǒu)屬性外(wài)部不(bù)能(néng)調用(yòng)和(✔hé)修改
Obj.getN=unll;
Obj.getN();//Obj.getN is not a function;
Obj.getName();//輸出"這(zhè)是(shì)私有(yǒu)屬性"
上(shàng)面的(de)代碼演示了(le)私有(yǒu)方法并沒有(yǒu)被修改。
其實現(xiàn)在用(yòng)的(de)比較多(duō)的(de)是(shì)jQuery。jQuery對(duì)象,就(jiù)是(shì)通(tōng)過jQuery包裝DOM對(duì)象後産生(s↕hēng)的(de)對(duì)象,舉個(gè)最簡單的(de)例子(zǐ):
$("#test").html() 意思是(shì)指:獲取ID為(wèi)test的(de)元素內(nèi)的(de)html代碼。其中html()是(shì)jQuery↓裡(lǐ)的(de)方法
這(zhè)段代碼等同于用(yòng)DOM實現(xiàn)代碼:
document.getElementById("id").innerHTML;
雖然jQuery對(duì)象是(shì)包裝DOM對(duì)象後産生(shēng)的(de),但(dàn)是(shì)jQuery無法使用(yòng→)DOM對(duì)象的(de)任何方法,同理(lǐ)DOM對(duì)象也(yě)不(bù)能(néng)使≈用(yòng)jQuery裡(lǐ)的(de)方法.亂使用(yòng)會(huì)報(bào)錯(cuò)。比如(rú):$("#test").innerHT↓ML、document.getElementById("id").html()之類的(de)寫法都(dōu)是(shì)錯(cuò)誤的(de)。
需要(yào)注意的(de)是(shì), jQuery 對(duì)象和(hé) DOM 對(duì)象可(kě)以任意的(de)相(xiàng)互轉換,但(dàn)是(shì) D§OM 對(duì)象能(néng)使用(yòng)DOM 中的(de)方法,jQuery 對(duì)象是(shì)不(bù)可(kě)以使用(yòng)DOM中的(de )方法。網上(shàng)有(yǒu)很(hěn)多(duō)Dom對(duì)象和(hé)jQuery對(duì)象相(xiàng)互轉化(huà)的(de)實例,需要(yào)了(le)解更多(duō)的(de)小(xiǎo)夥伴可(kě)以自(zì)行(xíng)搜索。蘇州網站(z$hàn)建設小(xiǎo)編在此就(jiù)不(bù)在贅述。沒有(yǒu)實踐就(jiù)沒有(yǒu)發言權。希望大(dà)家(jiā)可(kě)以養成好(hǎo)探索,勤練習(x í)的(de)好(hǎo)習(xí)慣。