中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      JavaScript中繼承的深入理解

      時(shí)間:2024-07-21 23:20:52 JavaScript 我要投稿
      • 相關(guān)推薦

      關(guān)于JavaScript中繼承的深入理解

        JavaScript中我們可以借助原型實(shí)現(xiàn)繼承。

        例如

        function baz(){this.oo="";}function foo(){}foo.prototype=new baz();var myFoo=new foo();myFoo.oo;

        這樣我們就可以訪問到baz里的屬性oo啦。在實(shí)際使用中這個(gè)樣不行滴,由于原型的共享特點(diǎn)(數(shù)據(jù)保存在了堆上),

        所有實(shí)例都使用一個(gè)原型,一但baz的屬性有引用類型就悲劇了,一個(gè)實(shí)例修改了其他實(shí)例也都跟著變了...wuwuwu

        自然就有了組合式繼承

        function baz(){this.oo="";}baz.prototype.xx=function(){}function foo(){baz.call(this);//第二次調(diào)用}foo.prototype=new baz();//第一次調(diào)用var myFoo=new foo();myFoo.oo;myFoo.xx;

        這樣就會(huì)有一個(gè)問題,代碼里也表明出來了,baz會(huì)被調(diào)用兩次,身為處女座的怎么可以允許呢..

        插一句,第二種方式就不用出現(xiàn)第一種方式的問題嗎?答案是不會(huì)的。

        原因是屬性的查找是先從對(duì)象自身開始,沒找到才會(huì)去原型中去找,call時(shí)就把屬性給繼承了。

        再插一句,那這樣只使用call繼承不就行了嗎?如果不使用原型這個(gè)是可行的,但是作為處女座怎么能不使用原型呢,

        在原型上方法是共享的,這樣性能就好了很多呀。

        寄生組合式繼承

        __extends=function (p,c){function ctor(){this.constructor=c;//賦值構(gòu)造函數(shù)}ctor.prototype=p.prototype;c.prototype=new ctor();}function baz(){this.oo=[1];}baz.prototype.xx=function(){}__extends(baz,foo);function foo(){baz.call(this);}var myFoo=new foo();myFoo.oo;myFoo.xx;

        這樣不但解決了兩次調(diào)用的問題,還解決了對(duì)象調(diào)用構(gòu)造函數(shù)時(shí)調(diào)用的是真實(shí)的創(chuàng)建對(duì)象的函數(shù)而不是原型鏈上其他的構(gòu)造函數(shù)。

        代碼里有表明。

        構(gòu)造函數(shù)是原型對(duì)象上的一個(gè)屬性,是對(duì)象的創(chuàng)建者。由于我們的原型屬性被從新賦值了所以構(gòu)造函數(shù)時(shí)繼承來的。

        這里要說一下,對(duì)象是怎樣創(chuàng)建,也就是new都干了些什么。

        例如:

        var a=new b();

        其實(shí)是這樣的,a={};創(chuàng)建了一個(gè)給a,然后b.call(a);call里初始化a,在call之前還有一步,就是a的內(nèi)部原型對(duì)象

        設(shè)置為b的原型屬性指向的原型對(duì)象。原型上有構(gòu)造函數(shù)屬性,構(gòu)造函數(shù)用來創(chuàng)建對(duì)象分配內(nèi)存控件。

        大概就這些...看看時(shí)間也不早了,碎吧,保持平和的心態(tài)切勿浮躁,努力去改變明天,希望一切都會(huì)慢慢變好。

      【JavaScript中繼承的深入理解】相關(guān)文章:

      有關(guān)深入理解JavaScript中的并行處理的介紹10-14

      對(duì)javascript的理解08-08

      javascript面向?qū)ο笾械膶?duì)象怎么理解09-02

      淺談javascript中的單線程理解08-16

      淺談如何深入學(xué)習(xí)Javascript中的this關(guān)鍵字08-19

      理解JavaScript原型鏈教程09-02

      javascript的閉包概念怎么理解06-15

      JavaScript中的with關(guān)鍵字07-24

      在Java中執(zhí)行JavaScript代碼07-14

      Javascript中typeof 用法歸納09-27

      主站蜘蛛池模板: 一本大道久久精品一本大道久久| 99久久婷婷这里只有精品| AV无码系列一区二区三区| 日韩人妻系列在线视频| 久草免费在线播放视频| 日本在线免费观看一二区视频| www久久久888| 亚洲无码vr| 连云港市| 黄陵县| 丰满熟妇人妻av无码区| 日本在线一区二区三区观看| 丰满人妻中文字幕乱码| 久久99精品久久久久九色 | 精品亚洲不卡一区二区| 日本蜜桃视频在线观看| 亚洲大片免费播放地址| 国产免费激情小视频在线观看| 国产情色一区二区三区| av免费一区二区三区不卡| 锦州市| 奉贤区| 国产在线观看网址不卡一区| 秭归县| 衡水市| 日韩中文字幕无码av| 高邑县| 国产九色蝌蚪91av在线观看| 久久AⅤ无码精品色午麻豆| 日本一区二区三区中文字幕最新 | 国产精品一区二区三区蜜臀| 国产高潮自拍视频在线观看| 人妖熟女少妇人妖少妇| 农村国产毛片一区二区三区女| 汽车| 国产精品一区二区久久毛片| 日韩高清av一区二区| 国产一区二区在线观看视频免费| 亚洲福利黄色片深爱网| 女同在线观看免费网站| 国产精品爽爽VA吃奶在线观看 |