位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > JavaScript > 問(wèn)題詳情

JavaScript 應(yīng)用原型

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-26

■知識(shí)點(diǎn)

原型屬性可以被所有實(shí)例訪(fǎng)問(wèn),而私有屬性只能被當(dāng)前實(shí)例訪(fǎng)問(wèn)。

下面通過(guò)幾個(gè)實(shí)例介紹原型在代碼中的應(yīng)用技巧。

■實(shí)例設(shè)計(jì)

【示例1】利用原型為對(duì)象設(shè)置默認(rèn)值。當(dāng)原型屬性與私有屬性同名時(shí),刪除私有屬性之后,可以訪(fǎng)問(wèn)原型屬性,即可以把原型屬性值作為初始化默認(rèn)值。

function p(x){               //構(gòu)造函數(shù)

    if (x)                         //如果參數(shù)存在,則設(shè)置屬性,該條件是關(guān)鍵

        this.x = x;            //使用參數(shù)初始化私有屬性x的值

}

p.prototype.x = 0;          //利用原型屬性,設(shè)置私有屬性x的默認(rèn)值

var p1 = new p();           //實(shí)例化一個(gè)沒(méi)有帶參數(shù)的對(duì)象

console.log(p1.x);          //返回0,即顯示私有屬性的默認(rèn)值

var p2 = new p(1);         //再次實(shí)例化,傳遞一個(gè)新的參數(shù)

console.log(p2.x);          //返回1,即顯示私有屬性的初始化值


【示例2】利用原型間接實(shí)現(xiàn)本地?cái)?shù)據(jù)備份。把本地對(duì)象的數(shù)據(jù)完全賦值給原型對(duì)象,相當(dāng)于為該對(duì)象定義一個(gè)副本,通俗地說(shuō)就是備份對(duì)象。這樣當(dāng)對(duì)象屬性被修改時(shí),可以通過(guò)原型對(duì)象來(lái)恢復(fù)本地對(duì)象的初始值。

function p (x){                                      //構(gòu)造函數(shù)

    this.x = x;

}

p.prototype.backup = function (){       //原型方法,備份本地對(duì)象的數(shù)據(jù)到原型對(duì)象中

    for(var i in this){

        p.prototype[i] = this[i];

    }

}

var pi = new p(1);                   //實(shí)例化對(duì)象

p1.backup();                           //備份實(shí)例對(duì)象中的數(shù)據(jù)

p1.x =10;                                //改寫(xiě)本地對(duì)象的屬性值

console.log(p1.x)                   //返回10,說(shuō)明屬性值己經(jīng)被改寫(xiě)

p1 = p.prototype;                  //恢復(fù)備份

console.log(p1.x)                   //返回1,說(shuō)明對(duì)象的屬性值己經(jīng)被恢復(fù)

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部