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

首頁 > 學院 > 開發設計 > 正文

對象繼承訓練(1)

2019-11-11 05:43:14
字體:
來源:轉載
供稿:網友

上節課我們已經了解了PRototype的基本使用:http://blog.csdn.net/github_26672553/article/details/54375735。

本節課,我們來完成對象的繼承訓練。

上節課課后作業(訓練prototype)

var God = new GodClass({ version:’1.0’, }); 在這里我們執行alert(God.version) 請設定一個GodClass.init方法,在該方法中傳入參數,后面的任何實例對象不傳參數也有version這個屬性

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

上面代碼是可以的。

下面我們完成作業,通過一個類似靜態函數的方式,修改GodClass

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

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

以后我們只需要調用一次init方法后,后面再實例化GodClass就不必傳入參數了:

//然后我們可以通過類似靜態函數的方法傳入參數GodClass.init({version:'1.0'});//這里實例化的時候可不傳入參數var God = new GodClass();alert(God.version); //彈出 '1.0'

這節課我們來訓練所謂的對象繼承

關鍵點 Function.prototype.call() 方法在使用一個指定的this值和若干個指定的參數值的前提下調用某個函數或方法

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

我們使用SportsNews類:

//實例化var sn = new SportsNews();sn.display(); //發現確實存在這個方法

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

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

上面代碼可以看出,我們給Function.prototype增加了extends方法,此方法就是用來擴展類的。 因為增加在原型上所以SportsNews也有該方法,我們來擴展SportsNews

//擴展SportsNewsSportsNews.extends(BaseNews);//實例化var sn = new SportsNews();sn.display(); //發現確實存在這個方法

這個時候,發現實例化后的SportsNews對象,還是有display方法,因為extends方法,是call了基類的原型。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片网站视频 | 欧美日韩一区,二区,三区,久久精品 | 国产精品久久久久久久久久久天堂 | 亚洲第一男人天堂 | 日韩视频www | 精品国产呦系列在线看 | 日韩av片在线播放 | 国产午夜亚洲精品理论片大丰影院 | 久久国产秒 | 国产日韩欧美一区 | 欧美成人免费在线视频 | 精品av在线播放 | 免费福利在线视频 | 国产精品久久久久国产精品三级 | 久久草草影视免费网 | 欧美日韩高清不卡 | 国产人成精品一区二区三 | 黄色99视频 | 欧美成人免费一级 | 午夜生活理论片 | 黑人一级片 | 毛片网站视频 | 狠狠操操 | 日韩视频一 | 免费网址黄 | 日韩在线毛片 | 美女亚洲 | www亚洲成人 | 国产又粗又爽又深的免费视频 | 麻豆视频国产在线观看 | 国产一区二区视频在线播放 | 逼片 | 在线成人免费网站 | 成人在线观看免费观看 | va免费视频 | 国产成人自拍视频在线观看 | 激情小说另类 | 精品国产一区二区三区四区在线 | 强伦女教师视频 | 黄色片网站免费 | 性爱视频在线免费 |