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

JavaScript 應用原型

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

■知識點

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

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

■實例設計

【示例1】利用原型為對象設置默認值。當原型屬性與私有屬性同名時,刪除私有屬性之后,可以訪問原型屬性,即可以把原型屬性值作為初始化默認值。

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

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

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

}

p.prototype.x = 0;          //利用原型屬性,設置私有屬性x的默認值

var p1 = new p();           //實例化一個沒有帶參數(shù)的對象

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

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

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


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

function p (x){                                      //構造函數(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;                  //恢復備份

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

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

相關視頻回答
回復(0)
返回頂部