DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript中子對象訪問父對象的方式詳解
JavaScript中子對象訪問父對象的方式詳解
編輯:關於JavaScript     

在傳統面向對象的編程語言裡,都會提供一種子類訪問父類的特殊語法,引文我們在實現子類方法往往需要父類方法的額外輔助。在這種情況下,子類通常會調用父類中的同名方法,最終以便完成工作。

javascript雖然沒有類似上述的特殊語法,但我們可以造一個啊!

function her(){};
her.prototype.name = 'Anna';
her.prototype.toString = function(){
var const = this.constructor;
return const.uber ? this.const.uber.toString() + ',' + this.name : this.name;
}
function his(){};
var F = function(){};
F.prototype = her.prototype;
his.prototype = new F();
his.prototype.constructor = her;
his.uber = her.prototype;
his.prototype.name ='Jock';
function child(width, height){
this.width = width;
this.height = height;
}
var F = function(){};
F.prototype = his.prototype;
child.prototype = new F();
child.prototype.constructor = child;
child.uber = his.prototype;
child.prototype.name = 'Los';
child.prototype.getArea = function(){
return this.width * this.height;
}

我們在構建關系的過程中,我們引入了一個uber屬性,並令其指向父及對象。

在這裡,我們更新了以下內容:

  1. 將usber屬性設置成指向父對象的引用;

  2. 對toString()方法進行了更新;

之前的toString()方法只是簡單的返回this.name,現在我們給他添加了額外的任務,就是檢查this.constructor.usber屬性,如果存在就調用該屬性的toString()方法。

由於this.constructor本身是一個函數,而this.constructo.usber是指向當前對象父級原型的引用,所以我們調用child實體的toString()方法時,其原型鏈上的toString()方法都會被調用。

var my = child(1,2);
my.toString() // Anna, Jock, Los

以上所述是小編給大家介紹的JavaScript中子對象訪問父對象的方式詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved