麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

對(duì)象繼承訓(xùn)練(1)

2019-11-11 06:21:30
字體:
供稿:網(wǎng)友

上節(jié)課我們已經(jīng)了解了PRototype的基本使用:http://blog.csdn.net/github_26672553/article/details/54375735。

本節(jié)課,我們來完成對(duì)象的繼承訓(xùn)練。

上節(jié)課課后作業(yè)(訓(xùn)練prototype)

var God = new GodClass({ version:’1.0’, }); 在這里我們執(zhí)行alert(God.version) 請(qǐng)?jiān)O(shè)定一個(gè)GodClass.init方法,在該方法中傳入?yún)?shù),后面的任何實(shí)例對(duì)象不傳參數(shù)也有version這個(gè)屬性

var GodClass = function abc(obj){ if(this instanceof abc){ if(obj != undefined){ //把obj中的可枚舉屬性賦值給this Object.assign(this,obj); //注意:這個(gè)this,必須在你實(shí)例化GodClass之后才會(huì)產(chǎn)生 } }else{ alert('不要胡搞'); }}var God = new GodClass({version:'1.0'});alert(God.version); //彈出 '1.0'

上面代碼是可以的。

下面我們完成作業(yè),通過一個(gè)類似靜態(tài)函數(shù)的方式,修改GodClass

var GodClass = function abc(obj){ if(this instanceof abc){ if(obj != undefined){ //把obj中的可枚舉屬性賦值給this Object.assign(this,obj); //注意:這個(gè)this,必須在你實(shí)例化GodClass之后才會(huì)產(chǎn)生 } }else{ alert('不要胡搞'); }}//定義一個(gè)init方法GodClass.init = function(obj){ if(obj != undefined){ Object.assign(this.prototype,obj); //注意:這里是把obj對(duì)象的屬性賦值給了this的prototype }}

注意,我們給GodClass增加了一個(gè)init方法,該方法接收一個(gè)對(duì)象,我們把對(duì)象中的屬性賦值給了原型(prototype)上。

以后我們只需要調(diào)用一次init方法后,后面再實(shí)例化GodClass就不必傳入?yún)?shù)了:

//然后我們可以通過類似靜態(tài)函數(shù)的方法傳入?yún)?shù)GodClass.init({version:'1.0'});//這里實(shí)例化的時(shí)候可不傳入?yún)?shù)var God = new GodClass();alert(God.version); //彈出 '1.0'

這節(jié)課我們來訓(xùn)練所謂的對(duì)象繼承

關(guān)鍵點(diǎn) Function.prototype.call() 方法在使用一個(gè)指定的this值和若干個(gè)指定的參數(shù)值的前提下調(diào)用某個(gè)函數(shù)或方法

//基類var BaseNews = function () { this.display = function(){ alert('新聞基類'); };}var SportsNews = function () { BaseNews.call(this); //這樣就繼承了BaseNews類中的方法}

我們使用SportsNews類:

//實(shí)例化var sn = new SportsNews();sn.display(); //發(fā)現(xiàn)確實(shí)存在這個(gè)方法

我們還可以通過另外的方式來擴(kuò)展 除了在SportsNews中,還可以直接在Function的原型上增加擴(kuò)展,修改如下:

//基類var BaseNews = function () { this.display = function(){ alert('新聞基類'); };}//給Function進(jìn)行擴(kuò)展Function.prototype.extends = function (className) { className.call(this.prototype);}//定義SportsNewsvar SportsNews = function () {}

上面代碼可以看出,我們給Function.prototype增加了extends方法,此方法就是用來擴(kuò)展類的。 因?yàn)樵黾釉谠蜕纤?code>SportsNews也有該方法,我們來擴(kuò)展SportsNews

//擴(kuò)展SportsNewsSportsNews.extends(BaseNews);//實(shí)例化var sn = new SportsNews();sn.display(); //發(fā)現(xiàn)確實(shí)存在這個(gè)方法

這個(gè)時(shí)候,發(fā)現(xiàn)實(shí)例化后的SportsNews對(duì)象,還是有display方法,因?yàn)?code>extends方法,是call了基類的原型。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久色成人网 | 香蕉久草在线 | 欧美中文日韩 | 久久99精品国产自在现线 | 亚州综合图片 | 精品av在线播放 | 成人在线视频网 | 色屁屁xxxxⅹ免费视频 | 国产精品高潮视频 | 美国av免费看 | 91精品国产91久久久 | 欧美成人小视频 | 久久久鲁 | 国产盼盼私拍福利视频99 | 午夜国产小视频 | 日日鲁夜夜视频热线播放 | 最新久久免费视频 | 在线免费观看毛片 | 日美av在线 | 新久草视频 | 羞羞草视频 | 国语自产免费精品视频在 | 美女视频在线观看黄 | 成人一区二区在线观看视频 | jizzyouxxxx| 在线免费av观看 | 一本一本久久a久久精品综合小说 | 中文字幕h | 91 视频网站 | 一级黄色淫片 | av电影观看| 最新中文字幕第一页视频 | 国产88久久久国产精品免费二区 | av7777777| 欧美老外a级毛片 | 国产精品午夜小视频观看 | 羞羞网站在线看 | 久久久av亚洲男天堂 | 亚洲天堂中文字幕在线观看 | 国产免费福利视频 | 九九热免费视频在线观看 |