<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳談js原型繼承的一些問題

        來源:懂視網 責編:小采 時間:2020-11-27 22:31:08
        文檔

        詳談js原型繼承的一些問題

        詳談js原型繼承的一些問題:當我們使用原型鏈繼承時,需要謹慎的定義原型上的方法和屬性,因為這可能帶來意外的結果。 一、謹慎的定義原型上的方法。 當我們想為一個構造函數的原型上定義一個方法時,一定要在更改原型后再定義,否則新的原型對象上不會有定義的這個方法,導致與我們預期
        推薦度:
        導讀詳談js原型繼承的一些問題:當我們使用原型鏈繼承時,需要謹慎的定義原型上的方法和屬性,因為這可能帶來意外的結果。 一、謹慎的定義原型上的方法。 當我們想為一個構造函數的原型上定義一個方法時,一定要在更改原型后再定義,否則新的原型對象上不會有定義的這個方法,導致與我們預期

        當我們使用原型鏈繼承時,需要謹慎的定義原型上的方法和屬性,因為這可能帶來意外的結果。

        一、謹慎的定義原型上的方法。

        當我們想為一個構造函數的原型上定義一個方法時,一定要在更改原型后再定義,否則新的原型對象上不會有定義的這個方法,導致與我們預期的結果不同。例:

        function superObj(){}
        superObj.prototype.sayHi=function sayHi(){
         console.log('hi');
        };
        superObj.prototype={
         name:'Poly'
        };
        var obj=new superObj();
        obj.sayHi();//報錯!! superObj.sayHi is not a function

        正確操作如下

        function superObj(){}
        superObj.prototype={
         name:'Poly'
        };
        superObj.prototype.sayHi=function sayHi(){
         console.log('hi');
        };
        var obj=new superObj();
        obj.sayHi();// 'hi'

        二、不要使用對象字面量給原型創建屬性/方法。

        使用對象字面量,就會新創建一個對象,并把新對象的引用地址賦值給構造函數的prototype。例

        function superObj(){}
        superObj.prototype={
         sayHi:function sayHi(){
         console.log('hi');
         }
        }

        正確操作如下:

        function superObj(){}
        superObj.prototype.sayHi=function sayHi(){
         console.log('hi');
        }

        三、對象實例與原型存在直接對應關系。

        意思就是說當一個對__proto__就會保存原型的引用地址,即使構造函數的prototype發生改變,也不會對之前創建的實例中的__proto__產生影響。例

        function superObj(){}
        superObj.prototype.say=function() {
         console.log('hello');
        }
        var obj=new superObj();
        superObj.prototype={
         say:function() {
         console.log('world');
         }
        };
        var obj2=new superObj();
        obj.say();//'hello'
        obj2.say();//'world'

        四、最好不要給原型上定義值為引用類型的屬性。

        如果在原型上定義值為引用類型的屬性,那么所有實例都會共享該屬性值(引用類型值,指向同一個對象),當其中一個實例修改該引用類型上的值或屬性時,所有實例上的都會發生改變。因此值為引用類型的屬性,最好在構造函數中定義。例

        function superObj(){}
        superObj.prototype.ary=[1,2,3];
        var obj1=new superObj();
        var obj2=new superObj();
        obj1.ary[0]=0;//obj1.ary和obj2.ary指向的是同一個數組,當obj1修改此數組時,obj2.ary也會發生改變
        console.log(obj2.ary[0]);//0

        如果不想讓實例共享同一個引用對象,那么就應該在構造函數中進行定義。例

        function superObj(){
         this.ary=[1,2,3];
        }
        var obj1=new superObj();
        var obj2=new superObj();
        obj1.ary[0]=0;//obj1.ary和obj2.ary指向的不是同一個數組,所以修改obj1.ary不會影響obj2.ary
        console.log(obj2.ary[0]);//1

        以上這篇詳談js原型繼承的一些問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳談js原型繼承的一些問題

        詳談js原型繼承的一些問題:當我們使用原型鏈繼承時,需要謹慎的定義原型上的方法和屬性,因為這可能帶來意外的結果。 一、謹慎的定義原型上的方法。 當我們想為一個構造函數的原型上定義一個方法時,一定要在更改原型后再定義,否則新的原型對象上不會有定義的這個方法,導致與我們預期
        推薦度:
        標簽: js 問題 原型
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品在线网站| 久久精品国产亚洲av影院| 亚洲hairy多毛pics大全| 黄网站色在线视频免费观看| 亚洲视频小说图片| 天天影视色香欲综合免费| 亚洲国产成人资源在线软件| 18观看免费永久视频| 亚洲欧洲春色校园另类小说| 91精品免费久久久久久久久| 亚洲一区二区三区亚瑟 | 国语成本人片免费av无码| 国产精品亚洲片在线va| 成年丰满熟妇午夜免费视频| 亚洲精华国产精华精华液好用| 免费特级黄毛片在线成人观看| 国产成人亚洲精品蜜芽影院| 亚洲天堂在线视频| 日韩免费观看一区| 亚洲一卡2卡3卡4卡乱码 在线| 真实乱视频国产免费观看| 人成免费在线视频| 亚洲情a成黄在线观看动漫尤物| 777成影片免费观看| 亚洲国产午夜精品理论片在线播放 | 久久大香伊焦在人线免费| 亚洲人成电影院在线观看| 日韩免费电影在线观看| 一级做a爰片久久毛片免费看| 亚洲国产另类久久久精品| 久草视频免费在线| 无码免费又爽又高潮喷水的视频| 久久精品7亚洲午夜a| 成人无遮挡裸免费视频在线观看 | 最近中文字幕免费mv视频8| 无人视频在线观看免费播放影院| 亚洲情综合五月天| 久久久www成人免费毛片| 一区二区视频在线免费观看| 亚洲黄色片免费看| 免费人成视频在线观看不卡|