中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Javascript面向對象程序設計繼承用法怎么用-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Javascript面向對象程序設計繼承用法怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、虛擬空間、營銷軟件、網(wǎng)站建設、共和網(wǎng)站維護、網(wǎng)站推廣。JavaScript是什么

JavaScript是一種直譯式的腳本語言,其解釋器被稱為JavaScript引擎,是瀏覽器的一部分,JavaScript是被廣泛用于客戶端的腳本語言,最早是在HTML網(wǎng)頁上使用,用來給HTML網(wǎng)頁增加動態(tài)功能。

1.關于繼承:

百度百科對繼承的解釋是:繼承是指一個對象直接使用另一對象的屬性和方法。

(話說百科對于計算機概念的繼承的解釋也太簡略了)

繼承的好處,優(yōu)點學過面向對象的同學都知道,就不贅述了。

javascript中的繼承有三種(不同的書上對這三中的名稱翻譯都不一樣,我按照我的理解來命名吧):

  • a.構造函數(shù)繼承(類式繼承,組合繼承,偽經(jīng)典繼承)

  • b.原型繼承

  • c.原型賦值(遍歷)繼承(寄生式繼承)

2.構造函數(shù)繼承

所謂的構造函數(shù)繼承,就是通過創(chuàng)建一個新對象,調用父類構造函數(shù)實現(xiàn)的一種繼承;
(知識點:函數(shù)對象的原型會有一個屬性叫constructor, constructor實際指向的是這個函數(shù))

function person(name){
  this.name = name;
}
extend(author, person);
function extend(subclass, superclass){
 var f= function(){};
 f.prototype = superclass.prototype;//f.prototype.constructor = superclass
 subclass.prototype = new f();//這里調用的實際上是superclass(),這樣subclass.prototype.construcor = superclass
 subclass.prototype.constructor = subclass;//將subclass的構造函數(shù)改寫為正常的自身的構造函數(shù)
}
3.原型式繼承

我們知道javascript在引用一個對象的屬性時,首先會去讀這個對象是否有這個屬性,如果沒有會繼續(xù)看這個對象的原型是否有這個屬性;

var person ={}
var author = clone(person);
function clone(obj){
 function F(){};
 F.prototype = obj;
 return new F;
}

clone函數(shù)的作用就是把父類的所有成員都給了新對象的prototype,成為了新對象prototype的成員,因此子類在引用一個父類屬性時,都能在prototype中找到,但是這種方式繼承是的所有克隆出來的對象都共享每個屬性和方法的唯一實例(因為都是通過原型讀?。?,只有在直接設置了某個克隆出來的對象的屬性和方法(變?yōu)閷ο螵毩傩裕?,情況才會有變化。

4.原型賦值(遍歷)繼承

這種賦值比原型賦值好的一點在于它控制繼承的范圍

var person = {};
augment(author, person);

//參數(shù)最少兩個,超過兩個則表示指定要繼承的成員
function augment(receivingclass, givingclass){
  if(arguments[2]){
   for(var i=2;i<arguments.length;i++){
    receivingclass.prototype[arguments[i]] = givingclass.prototype[arguments[i]];
   }
  }
  else{
   for(methodname in givingclass.prototype){
    receivingclass.prototype[methodname] = givingclass.prototype[methodname];
   }
  }
}

這種方式比較適用于var obj這樣定義的對象,而不是用函數(shù)來定義的對象,如果使用函數(shù)定義的對象,同時又要指定繼承的成員,別忘了constructor

“Javascript面向對象程序設計繼承用法怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

文章標題:Javascript面向對象程序設計繼承用法怎么用-創(chuàng)新互聯(lián)
鏈接分享:http://www.rwnh.cn/article12/ddspgc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站建設、微信小程序、網(wǎng)站維護、品牌網(wǎng)站設計、標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司
罗甸县| 元阳县| 德昌县| 大埔区| 平罗县| 开封市| 伊春市| 西昌市| 赣榆县| 武定县| 井陉县| 苏尼特左旗| 静海县| 长阳| 双江| 甘德县| 静海县| 会理县| 桑植县| 项城市| 禄劝| 扶风县| 浮梁县| 台中市| 杭锦旗| 资阳市| 沅陵县| 洛扎县| 达日县| 衡阳市| 延吉市| 夏邑县| 房山区| 宁陕县| 合阳县| 比如县| 安西县| 延长县| 武平县| 安吉县| 平顶山市|