JavaScript中子對(duì)象訪(fǎng)問(wèn)父對(duì)象的方式詳解
在傳統(tǒng)面向?qū)ο蟮木幊陶Z(yǔ)言里,都會(huì)提供一種子類(lèi)訪(fǎng)問(wèn)父類(lèi)的特殊語(yǔ)法,引文我們?cè)趯?shí)現(xiàn)子類(lèi)方法往往需要父類(lèi)方法的額外輔助。在這種情況下,子類(lèi)通常會(huì)調(diào)用父類(lèi)中的同名方法,最終以便完成工作。
javascript雖然沒(méi)有類(lèi)似上述的特殊語(yǔ)法,但我們可以造一個(gè)??!
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;
}
我們?cè)跇?gòu)建關(guān)系的過(guò)程中,我們引入了一個(gè)uber屬性,并令其指向父及對(duì)象。
在這里,我們更新了以下內(nèi)容:
1. 將usber屬性設(shè)置成指向父對(duì)象的引用;
2. 對(duì)toString()方法進(jìn)行了更新;
之前的toString()方法只是簡(jiǎn)單的返回this.name,現(xiàn)在我們給他添加了額外的任務(wù),就是檢查this.constructor.usber屬性,如果存在就調(diào)用該屬性的toString()方法。
由于this.constructor本身是一個(gè)函數(shù),而this.constructo.usber是指向當(dāng)前對(duì)象父級(jí)原型的引用,所以我們調(diào)用child實(shí)體的toString()方法時(shí),其原型鏈上的toString()方法都會(huì)被調(diào)用。
var my = child(1,2); my.toString() // Anna, Jock, Los
以上所述是小編給大家介紹的JavaScript中子對(duì)象訪(fǎng)問(wèn)父對(duì)象的方式詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 在JavaScript中如何訪(fǎng)問(wèn)暫未存在的嵌套對(duì)象
- 詳解js訪(fǎng)問(wèn)對(duì)象的屬性和方法
- JS實(shí)現(xiàn)訪(fǎng)問(wèn)DOM對(duì)象指定節(jié)點(diǎn)的方法示例
- js return返回多個(gè)值,通過(guò)對(duì)象的屬性訪(fǎng)問(wèn)方法
- js中通過(guò)getElementsByName訪(fǎng)問(wèn)name集合對(duì)象的方法
- 淺析JavaScript訪(fǎng)問(wèn)對(duì)象屬性和方法及區(qū)別
- js 利用image對(duì)象實(shí)現(xiàn)圖片的預(yù)加載提高訪(fǎng)問(wèn)速度
- JS訪(fǎng)問(wèn)對(duì)象兩種方式區(qū)別解析
相關(guān)文章
javascript實(shí)現(xiàn)的猜數(shù)小游戲完整實(shí)例代碼
這篇文章主要介紹了javascript實(shí)現(xiàn)的猜數(shù)小游戲,游戲中用戶(hù)共有10次猜測(cè)機(jī)會(huì),并且每次都有不同的提示信息,該游戲涉及javascript流程控制與數(shù)值運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2016-05-05
一文熟練掌握J(rèn)avaScript的switch用法
在JavaScript中switch語(yǔ)句是一種用于多條件分支的控制語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于如果通過(guò)一文熟練掌握J(rèn)avaScript的switch用法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法,在Web開(kāi)發(fā)中Tab切換是一個(gè)常見(jiàn)的功能,它允許用戶(hù)在不同的頁(yè)面部分之間進(jìn)行切換,需要的朋友可以參考下2023-12-12
prettier自動(dòng)格式化去換行的實(shí)現(xiàn)代碼
這篇文章主要介紹了prettier自動(dòng)格式化去換行的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
JS & JQuery 動(dòng)態(tài)添加 select option
這篇文章主要介紹了JS & JQuery 動(dòng)態(tài)添加 select option 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-06-06
使用taro開(kāi)發(fā)微信小程序遇到的坑總結(jié)
Taro,京東凹凸實(shí)驗(yàn)室出品的適配多端的一個(gè)框架,這篇文章主要介紹了使用taro開(kāi)發(fā)微信小程序遇到的坑總結(jié),需要的朋友可以參考下2019-04-04

