国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初學者快速學會javascript原型,原型鏈,原型繼承

hiYoHoo / 1720人閱讀

摘要:學習,總繞不開原型,原型鏈,繼承等等這些知識。對象那么好,怎么才能找一個呸,其實是創建創建對象的方法對象字面量工廠模式構造函數模式原型模式等。原型鏈有什么用來談談繼承,繼承可以利用構造函數,使用屬性等來實現。

初學者學習javascript可能會感覺很困擾,但是你一旦真正了解了它,我相信你會愛上它。學習ECMAScript,總繞不開原型,原型鏈,繼承等等這些知識。今天把它們放在一塊兒,首先把理解他們作為小目標,構建一個完備的結構。不要眼高手低,我們一步一步來理解。

從對象的開始

1.何為對象?對象是數據,這個數據擁有屬性和方法,有可以進行封裝和繼承等等的特點。
2.何為面向對象編程?面向對象編程是一個使用一系列的對象進行協作,從而靈活高效地解決復雜問題的編程思想。

對象那么好,怎么才能找一個(呸,其實是創建)?

創建對象的方法:對象字面量、工廠模式、構造函數模式、原型模式等。
前面三個暫且不看,他們的短板大家應該都知道。主要來看如何用原型模式創建一個對象。

來個看爛了的例子,把一個“”作為對象,盡情地創建吧:

function Person(){
}
Person.prototype.name = "程流流";//是的,我的名字
Person.prototype.age = 21;
Person.prototype.job = "大學生";
Person.prototype.sayName = function(){
alert(this.name);
};
var person1 = new Person();
person1.sayName(); //"程流流"
var person2 = new Person();
person2.sayName(); //"程流流"
alert(person1.sayName == person2.sayName); //true

例子雖然簡單,但是內容豐富,來解剖一下:
這個例子里面有構造函數,原型對象,實例對象, prototype
屬性,constructor屬性,_proto_屬性,很豐富吧。關于他們之間的關系,我學習的時候很容易弄混掉(因為我大腦不夠聰慧,這個沒辦法),但是有天上課的時候突然就想明白了,然后就寫在了書上。看圖:

是不是很簡單,明白了他們都是什么以及之間的關系后我們進行到下一步...

原型鏈

原型鏈是一條鏈。我們前面利用構造器(就是constructor)創建了新對象,新對象都有prototype屬性,而我們new出來的新實例對象有默認的一個只想構造器原型(原型對象)的內部指針_proto_,那個原型prototype它也是個對象,它也有自己的原型,原型對象又包含一個指向另一個原型的指針,相應地,另一個原型中也包含著一個指向另一個構造函數
的指針。假如另一個原型又是另一個類型的實例,那么上述關系依然成立,如此層層遞進,就構成了實例與原型的鏈條。

原型鏈有什么用

來談談繼承,繼承可以利用構造函數,使用prototype屬性等來實現。原型繼承主要就是用原型鏈來實現,怎么個繼承法呢?就是利用原型讓一個引用類型來繼承另一個引用類型的屬性和方法。
記得上面的草圖吧,我來畫一個好看點的:

看到了嗎,沿著原型鏈一環一環的繼承。

初學者看到這里相信已經對面向對象編程有關的重要概念有了一定理解,下一篇來談一談有關閉包的知識。第一次寫文章,文筆太差,也沒有高深的技術在里面,如果幫助初學者理清了思路,我的目的就達到了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88453.html

相關文章

  • 學習設計模式前需要知道的事情

    摘要:為什么要學習設計模式做事情之前問個為什么總是好的。設計模式的使用方法關于使用方式,像我這種初學者最容易犯的錯誤就是生搬硬套,但是模仿本來也是學習的一個過程,最重要的事情是在模仿中要學會思考。 為什么要學習設計模式? 做事情之前問個為什么總是好的。關于設計模式的好壞,我在知乎上也看過一些討論,有知友對其提出過一些疑問,里面有一些關于設計模式的觀點: 設計模式有何不妥,所謂的荼毒體現在哪...

    kviccn 評論0 收藏0
  • JavaScript系列(四) - 收藏集 - 掘金

    摘要:函數式編程前端掘金引言面向對象編程一直以來都是中的主導范式。函數式編程是一種強調減少對程序外部狀態產生改變的方式。 JavaScript 函數式編程 - 前端 - 掘金引言 面向對象編程一直以來都是JavaScript中的主導范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數式編程越來越多得受到開發者的青睞。函數式編程是一種強調減少對程序外部狀態產生改變的方式。因此,...

    cfanr 評論0 收藏0
  • 面向對象的 JavaScript

    摘要:是完全的面向對象語言,它們通過類的形式組織函數和變量,使之不能脫離對象存在。而在基于原型的面向對象方式中,對象則是依靠構造器利用原型構造出來的。 JavaScript 函數式腳本語言特性以及其看似隨意的編寫風格,導致長期以來人們對這一門語言的誤解,即認為 JavaScript 不是一門面向對象的語言,或者只是部分具備一些面向對象的特征。本文將回歸面向對象本意,從對語言感悟的角度闡述為什...

    novo 評論0 收藏0
  • 細說 Javascript 對象篇(二) : 原型對象

    摘要:并沒有類繼承模型,而是使用原型對象進行原型式繼承。我們舉例說明原型鏈查找機制當訪問一個對象的屬性時,會從對象本身開始往上遍歷整個原型鏈,直到找到對應屬性為止。原始類型有以下五種型。此外,試圖查找一個不存在屬性時將會遍歷整個原型鏈。 Javascript 并沒有類繼承模型,而是使用原型對象 prototype 進行原型式繼承。 盡管人們經常將此看做是 Javascript 的一個缺點,然...

    lansheng228 評論0 收藏0
  • 快速掌握JavaScript面試基礎知識(三)

    摘要:第一部分請點擊快速掌握面試基礎知識一關鍵字如果使用關鍵字來調用函數式很特別的形式。該對象默認包含了指向原構造函數的屬性。接下來通過例子來幫助理解屬性包含了構造函數以及構造函數中在上定義的屬性。也就是說,的回調函數后執行。 譯者按: 總結了大量JavaScript基本知識點,很有用! 原文: The Definitive JavaScript Handbook for your next...

    qieangel2013 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<