亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

初學(xué)者快速學(xué)會(huì)javascript原型,原型鏈,原型繼承

hiYoHoo / 1791人閱讀

摘要:學(xué)習(xí),總繞不開(kāi)原型,原型鏈,繼承等等這些知識(shí)。對(duì)象那么好,怎么才能找一個(gè)呸,其實(shí)是創(chuàng)建創(chuàng)建對(duì)象的方法對(duì)象字面量工廠模式構(gòu)造函數(shù)模式原型模式等。原型鏈有什么用來(lái)談?wù)劺^承,繼承可以利用構(gòu)造函數(shù),使用屬性等來(lái)實(shí)現(xiàn)。

初學(xué)者學(xué)習(xí)javascript可能會(huì)感覺(jué)很困擾,但是你一旦真正了解了它,我相信你會(huì)愛(ài)上它。學(xué)習(xí)ECMAScript,總繞不開(kāi)原型,原型鏈,繼承等等這些知識(shí)。今天把它們放在一塊兒,首先把理解他們作為小目標(biāo),構(gòu)建一個(gè)完備的結(jié)構(gòu)。不要眼高手低,我們一步一步來(lái)理解。

從對(duì)象的開(kāi)始

1.何為對(duì)象?對(duì)象是數(shù)據(jù),這個(gè)數(shù)據(jù)擁有屬性和方法,有可以進(jìn)行封裝和繼承等等的特點(diǎn)。
2.何為面向?qū)ο缶幊??面向?qū)ο缶幊淌且粋€(gè)使用一系列的對(duì)象進(jìn)行協(xié)作,從而靈活高效地解決復(fù)雜問(wèn)題的編程思想。

對(duì)象那么好,怎么才能找一個(gè)(呸,其實(shí)是創(chuàng)建)?

創(chuàng)建對(duì)象的方法:對(duì)象字面量、工廠模式、構(gòu)造函數(shù)模式、原型模式等。
前面三個(gè)暫且不看,他們的短板大家應(yīng)該都知道。主要來(lái)看如何用原型模式創(chuàng)建一個(gè)對(duì)象。

來(lái)個(gè)看爛了的例子,把一個(gè)“”作為對(duì)象,盡情地創(chuàng)建吧:

function Person(){
}
Person.prototype.name = "程流流";//是的,我的名字
Person.prototype.age = 21;
Person.prototype.job = "大學(xué)生";
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

例子雖然簡(jiǎn)單,但是內(nèi)容豐富,來(lái)解剖一下:
這個(gè)例子里面有構(gòu)造函數(shù),原型對(duì)象,實(shí)例對(duì)象, prototype
屬性,constructor屬性,_proto_屬性,很豐富吧。關(guān)于他們之間的關(guān)系,我學(xué)習(xí)的時(shí)候很容易弄混掉(因?yàn)槲掖竽X不夠聰慧,這個(gè)沒(méi)辦法),但是有天上課的時(shí)候突然就想明白了,然后就寫(xiě)在了書(shū)上??磮D:

是不是很簡(jiǎn)單,明白了他們都是什么以及之間的關(guān)系后我們進(jìn)行到下一步...

原型鏈

原型鏈?zhǔn)且粭l鏈。我們前面利用構(gòu)造器(就是constructor)創(chuàng)建了新對(duì)象,新對(duì)象都有prototype屬性,而我們new出來(lái)的新實(shí)例對(duì)象有默認(rèn)的一個(gè)只想構(gòu)造器原型(原型對(duì)象)的內(nèi)部指針_proto_,那個(gè)原型prototype它也是個(gè)對(duì)象,它也有自己的原型,原型對(duì)象又包含一個(gè)指向另一個(gè)原型的指針,相應(yīng)地,另一個(gè)原型中也包含著一個(gè)指向另一個(gè)構(gòu)造函數(shù)
的指針。假如另一個(gè)原型又是另一個(gè)類(lèi)型的實(shí)例,那么上述關(guān)系依然成立,如此層層遞進(jìn),就構(gòu)成了實(shí)例與原型的鏈條。

原型鏈有什么用

來(lái)談?wù)?strong>繼承,繼承可以利用構(gòu)造函數(shù),使用prototype屬性等來(lái)實(shí)現(xiàn)。原型繼承主要就是用原型鏈來(lái)實(shí)現(xiàn),怎么個(gè)繼承法呢?就是利用原型讓一個(gè)引用類(lèi)型來(lái)繼承另一個(gè)引用類(lèi)型的屬性和方法。
記得上面的草圖吧,我來(lái)畫(huà)一個(gè)好看點(diǎn)的:

看到了嗎,沿著原型鏈一環(huán)一環(huán)的繼承。

初學(xué)者看到這里相信已經(jīng)對(duì)面向?qū)ο缶幊逃嘘P(guān)的重要概念有了一定理解,下一篇來(lái)談一談?dòng)嘘P(guān)閉包的知識(shí)。第一次寫(xiě)文章,文筆太差,也沒(méi)有高深的技術(shù)在里面,如果幫助初學(xué)者理清了思路,我的目的就達(dá)到了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/88453.html

相關(guān)文章

  • 學(xué)習(xí)設(shè)計(jì)模式前需要知道的事情

    摘要:為什么要學(xué)習(xí)設(shè)計(jì)模式做事情之前問(wèn)個(gè)為什么總是好的。設(shè)計(jì)模式的使用方法關(guān)于使用方式,像我這種初學(xué)者最容易犯的錯(cuò)誤就是生搬硬套,但是模仿本來(lái)也是學(xué)習(xí)的一個(gè)過(guò)程,最重要的事情是在模仿中要學(xué)會(huì)思考。 為什么要學(xué)習(xí)設(shè)計(jì)模式? 做事情之前問(wèn)個(gè)為什么總是好的。關(guān)于設(shè)計(jì)模式的好壞,我在知乎上也看過(guò)一些討論,有知友對(duì)其提出過(guò)一些疑問(wèn),里面有一些關(guān)于設(shè)計(jì)模式的觀點(diǎn): 設(shè)計(jì)模式有何不妥,所謂的荼毒體現(xiàn)在哪...

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

    摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠?lái)都是中的主導(dǎo)范式。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠?lái)都是JavaScript中的主導(dǎo)范式。JavaScript作為一門(mén)多范式編程語(yǔ)言,然而,近幾年,函數(shù)式編程越來(lái)越多得受到開(kāi)發(fā)者的青睞。函數(shù)式編程是一種強(qiáng)調(diào)減少對(duì)程序外部狀態(tài)產(chǎn)生改變的方式。因此,...

    cfanr 評(píng)論0 收藏0
  • 面向?qū)ο蟮?JavaScript

    摘要:是完全的面向?qū)ο笳Z(yǔ)言,它們通過(guò)類(lèi)的形式組織函數(shù)和變量,使之不能脫離對(duì)象存在。而在基于原型的面向?qū)ο蠓绞街?,?duì)象則是依靠構(gòu)造器利用原型構(gòu)造出來(lái)的。 JavaScript 函數(shù)式腳本語(yǔ)言特性以及其看似隨意的編寫(xiě)風(fēng)格,導(dǎo)致長(zhǎng)期以來(lái)人們對(duì)這一門(mén)語(yǔ)言的誤解,即認(rèn)為 JavaScript 不是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽?,從?duì)語(yǔ)言感悟的角度闡述為什...

    novo 評(píng)論0 收藏0
  • 細(xì)說(shuō) Javascript 對(duì)象篇(二) : 原型對(duì)象

    摘要:并沒(méi)有類(lèi)繼承模型,而是使用原型對(duì)象進(jìn)行原型式繼承。我們舉例說(shuō)明原型鏈查找機(jī)制當(dāng)訪問(wèn)一個(gè)對(duì)象的屬性時(shí),會(huì)從對(duì)象本身開(kāi)始往上遍歷整個(gè)原型鏈,直到找到對(duì)應(yīng)屬性為止。原始類(lèi)型有以下五種型。此外,試圖查找一個(gè)不存在屬性時(shí)將會(huì)遍歷整個(gè)原型鏈。 Javascript 并沒(méi)有類(lèi)繼承模型,而是使用原型對(duì)象 prototype 進(jìn)行原型式繼承。 盡管人們經(jīng)常將此看做是 Javascript 的一個(gè)缺點(diǎn),然...

    lansheng228 評(píng)論0 收藏0
  • 快速掌握JavaScript面試基礎(chǔ)知識(shí)(三)

    摘要:第一部分請(qǐng)點(diǎn)擊快速掌握面試基礎(chǔ)知識(shí)一關(guān)鍵字如果使用關(guān)鍵字來(lái)調(diào)用函數(shù)式很特別的形式。該對(duì)象默認(rèn)包含了指向原構(gòu)造函數(shù)的屬性。接下來(lái)通過(guò)例子來(lái)幫助理解屬性包含了構(gòu)造函數(shù)以及構(gòu)造函數(shù)中在上定義的屬性。也就是說(shuō),的回調(diào)函數(shù)后執(zhí)行。 譯者按: 總結(jié)了大量JavaScript基本知識(shí)點(diǎn),很有用! 原文: The Definitive JavaScript Handbook for your next...

    qieangel2013 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<