<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网站| 暖暖在线日本免费中文| 亚洲精品乱码久久久久久久久久久久 | 免费人成黄页在线观看日本| 亚洲区日韩区无码区| 免费手机在线看片| 亚洲国产精品自产在线播放| 一级女人18片毛片免费视频| 色久悠悠婷婷综合在线亚洲| 精品国产免费人成网站| 亚洲人成人一区二区三区| 免费无码av片在线观看| 亚洲视频2020| 成年女人色毛片免费看| 激情婷婷成人亚洲综合| www亚洲精品少妇裸乳一区二区 | 国产高清视频免费在线观看| 亚洲乱码精品久久久久..| 久久午夜无码免费| 亚洲伊人久久大香线蕉啊| 在线观看免费成人| 成人免费网站久久久| 亚洲AV无码久久精品成人| 99无码人妻一区二区三区免费| 亚洲精品456人成在线| 免费一级特黄特色大片在线观看 | 国产日韩一区二区三免费高清| 日韩亚洲AV无码一区二区不卡| 毛片基地免费观看| 一级毛片在线免费视频| 午夜影视日本亚洲欧洲精品一区| 97性无码区免费| 一级毛片**免费看试看20分钟| 午夜亚洲www湿好大| 免费的一级片网站| 免费在线观影网站| 亚洲aⅴ天堂av天堂无码麻豆| 亚洲综合色自拍一区| 成人无遮挡毛片免费看| 中文字幕av无码不卡免费| 亚洲成a人片毛片在线|