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

JavaScript 應(yīng)用原型

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

■知識點

原型屬性可以被所有實例訪問,而私有屬性只能被當(dāng)前實例訪問。

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

■實例設(shè)計

【示例1】利用原型為對象設(shè)置默認(rèn)值。當(dāng)原型屬性與私有屬性同名時,刪除私有屬性之后,可以訪問原型屬性,即可以把原型屬性值作為初始化默認(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ù)的對象

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

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

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


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

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

    this.x = x;

}

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

    for(var i in this){

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

    }

}

var pi = new p(1);                   //實例化對象

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

p1.x =10;                                //改寫本地對象的屬性值

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

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

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

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

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