bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

為什么JS會有原型的概念

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

創新互聯建站是一家專注于網站建設、成都網站制作與策劃設計,嵐山網站建設哪家好?創新互聯建站做網站,專注于網站建設10年,網設計領域的專業建站公司;建站業務涵蓋:嵐山等地區。嵐山做網站價格咨詢:13518219792

因為早期的瀏覽器只能用來瀏覽,不具備與訪問者互動的能力。比如,如果網頁上有一欄"用戶名"要求填寫,瀏覽器就無法判斷訪問者是否真的填寫了,只有讓服務器端判斷。

如果沒有填寫,服務器端就返回錯誤,要求用戶重新填寫,這太浪費時間和服務器資源了。

這個時候需要一門網頁腳本語言,這種腳本語言能夠完成一些簡單的操作,比如判斷用戶有沒有填寫表單。剛好這個時候是向對象編程(object-oriented  programming)最興盛的時期,C++是當時最流行的語言,而Java語言也馬上推出。

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

但是,他不打算引入"類"(class)的概念,因為一旦有了"類",Javascript就是一種完整的面向對象編程語言了,這好像有點太正式了,而且增加了初學者的入門難度。

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

C++的寫法是:

ClassName *object = new ClassName(param);

Java的寫法是:

Foo foo = new Foo();

這時,他想到C++和Java使用new命令時,都會調用"類"的構造函數(constructor)。他就做了一個簡化的設計,在Javascript語言中,new命令后面跟的不是類,而是構造函數。

但是很快發現用構造函數生成實例對象,有一個缺點,那就是無法共享屬性和方法。

每一個實例對象,都有自己的屬性和方法的副本。這不僅無法做到數據共享,也是極大的資源浪費。

最終加入了prototype屬性的引入

考慮到這一點,作者決定為構造函數設置一個prototype對象屬性。

所有實例對象需要共享的屬性和方法,都放在這個對象里面;那些不需要共享的屬性和方法,就放在構造函數里面。

實例對象一旦創建,將自動引用prototype對象的屬性和方法。

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

總結

  • JavaScript采用原型編程,所有對象都能共享原型上的方法,節省內存;

  • 同時基于原型這一實現思想,JavaScript通過找對原型鏈,方便地實現了繼承。

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

到此,關于“為什么JS會有原型的概念”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!

網站標題:為什么JS會有原型的概念
網址分享:http://vcdvsql.cn/article2/pdegic.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣定制開發軟件開發搜索引擎優化域名注冊用戶體驗

廣告

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

成都網站建設