内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

為什么JS會(huì)有原型的概念

這篇文章主要介紹“為什么JS會(huì)有原型的概念”,在日常操作中,相信很多人在為什么JS會(huì)有原型的概念問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”為什么JS會(huì)有原型的概念”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),嵐山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:嵐山等地區(qū)。嵐山做網(wǎng)站價(jià)格咨詢:13518219792

因?yàn)樵缙诘臑g覽器只能用來瀏覽,不具備與訪問者互動(dòng)的能力。比如,如果網(wǎng)頁上有一欄"用戶名"要求填寫,瀏覽器就無法判斷訪問者是否真的填寫了,只有讓服務(wù)器端判斷。

如果沒有填寫,服務(wù)器端就返回錯(cuò)誤,要求用戶重新填寫,這太浪費(fèi)時(shí)間和服務(wù)器資源了。

這個(gè)時(shí)候需要一門網(wǎng)頁腳本語言,這種腳本語言能夠完成一些簡(jiǎn)單的操作,比如判斷用戶有沒有填寫表單。剛好這個(gè)時(shí)候是向?qū)ο缶幊?object-oriented  programming)最興盛的時(shí)期,C++是當(dāng)時(shí)最流行的語言,而Java語言也馬上推出。

所以Javascript作者也受到了啟發(fā),Javascript里面所有的數(shù)據(jù)類型都是對(duì)象(object),這一點(diǎn)與Java非常相似。但是直接使用java的"繼承"機(jī)制來實(shí)現(xiàn),又覺得過于笨重,但是,Javascript里面都是對(duì)象,必須有一種機(jī)制,將所有對(duì)象聯(lián)系起來。所以,javascript作者最后還是設(shè)計(jì)了"繼承"。

但是,他不打算引入"類"(class)的概念,因?yàn)橐坏┯辛?quot;類",Javascript就是一種完整的面向?qū)ο缶幊陶Z言了,這好像有點(diǎn)太正式了,而且增加了初學(xué)者的入門難度。

他考慮到,C++和Java語言都使用new命令,生成實(shí)例。

C++的寫法是:

ClassName *object = new ClassName(param);

Java的寫法是:

Foo foo = new Foo();

這時(shí),他想到C++和Java使用new命令時(shí),都會(huì)調(diào)用"類"的構(gòu)造函數(shù)(constructor)。他就做了一個(gè)簡(jiǎn)化的設(shè)計(jì),在Javascript語言中,new命令后面跟的不是類,而是構(gòu)造函數(shù)。

但是很快發(fā)現(xiàn)用構(gòu)造函數(shù)生成實(shí)例對(duì)象,有一個(gè)缺點(diǎn),那就是無法共享屬性和方法。

每一個(gè)實(shí)例對(duì)象,都有自己的屬性和方法的副本。這不僅無法做到數(shù)據(jù)共享,也是極大的資源浪費(fèi)。

最終加入了prototype屬性的引入

考慮到這一點(diǎn),作者決定為構(gòu)造函數(shù)設(shè)置一個(gè)prototype對(duì)象屬性。

所有實(shí)例對(duì)象需要共享的屬性和方法,都放在這個(gè)對(duì)象里面;那些不需要共享的屬性和方法,就放在構(gòu)造函數(shù)里面。

實(shí)例對(duì)象一旦創(chuàng)建,將自動(dòng)引用prototype對(duì)象的屬性和方法。

由于所有的實(shí)例對(duì)象共享同一個(gè)prototype對(duì)象,那么從外界看起來,prototype對(duì)象就好像是實(shí)例對(duì)象的原型,而實(shí)例對(duì)象則好像"繼承"了prototype對(duì)象一樣。

總結(jié)

  • JavaScript采用原型編程,所有對(duì)象都能共享原型上的方法,節(jié)省內(nèi)存;

  • 同時(shí)基于原型這一實(shí)現(xiàn)思想,JavaScript通過找對(duì)原型鏈,方便地實(shí)現(xiàn)了繼承。

這就是原型編程帶來的2個(gè)最大好處!!!

到此,關(guān)于“為什么JS會(huì)有原型的概念”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

網(wǎng)站標(biāo)題:為什么JS會(huì)有原型的概念
網(wǎng)址分享:http://www.rwnh.cn/article2/pdegic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、定制開發(fā)、軟件開發(fā)、搜索引擎優(yōu)化、域名注冊(cè)、用戶體驗(yàn)

廣告

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

成都網(wǎng)站建設(shè)
阿荣旗| 封丘县| 玉田县| 馆陶县| 长海县| 高台县| 宁武县| 富民县| 龙海市| 稻城县| 札达县| 鲜城| 湄潭县| 运城市| 涡阳县| 马山县| 北川| 宜州市| 昭通市| 尉氏县| 壶关县| 武宁县| 弥渡县| 留坝县| 江西省| 天全县| 聂荣县| 延寿县| 新乐市| 百色市| 博罗县| 广南县| 芜湖市| 建昌县| 平果县| 山阳县| 拉孜县| 水富县| 石楼县| 囊谦县| 泸溪县|