91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[js高手之路]原型式繼承與寄生式繼承詳解

發布時間:2020-10-24 09:44:22 來源:腳本之家 閱讀:116 作者:jingxian 欄目:web開發

一、原型式繼承本質其實就是個淺拷貝,以一個對象為模板復制出新的對象

function object( o ){
      var G = function(){};
      G.prototype = o;
      return new G();
    }
    var obj = {
      name : 'ghostwu',
      age : 22,
      show : function(){
        return this.name + ',' + this.age;
      }
    };
    var obj2 = object( obj );
    console.log( obj2.name, obj.age, obj.show() );

object函數中,以對象o為模板,在object函數體里面,定義一個構造函數,讓構造函數的原型對象(prototype)指向o,

返回構造函數的一個實例,這樣就可以訪問到對象o的所有屬性和方法.

二、因為原型式繼承是個淺拷貝,所以引用類型的數據共享在不同的實例之間

function object( o ){
      var G = function(){};
      G.prototype = o;
      return new G();
    }
    var obj = {
      skills : [ 'php', 'javascript' ]
    };
    var obj2 = object( obj );
    obj2.skills.push( 'python' );
    var obj3 = object( obj );
    console.log( obj3.skills ); //php,javascript,python

obj2改變了skills數組,obj3的skills結果就是其他實例改變的結果

三、在es5中,新增了一個函數Object.create()實現了原型式繼承

var obj = {
      skills : [ 'php', 'javascript' ]
    };
    var obj2 = Object.create( obj );
    obj2.skills.push( 'python' );
    var obj3 = Object.create( obj );
    console.log( obj3.skills ); //php,javascript,python

四,寄生式繼承就是把原型式繼承再次封裝,然后在對象上擴展新的方法,再把新對象返回

function object( o ){
      var G = function(){};
      G.prototype = o;
      return new G();
    }
    function CreateObj( srcObj ){
      var dstObj = object( srcObj );
      dstObj.sayName = function(){
        return this.userName;
      }
      return dstObj;
    }
    var obj = {
      userName : 'ghostwu',
    };
    var obj2 = CreateObj( obj );
    console.log( obj2.sayName() ); //ghostwu

以上這篇[js高手之路]原型式繼承與寄生式繼承詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙山县| 含山县| 高阳县| 鲁山县| 阿克苏市| 米泉市| 固镇县| 长泰县| 卢龙县| 洞口县| 应用必备| 合江县| 东丰县| 温宿县| 阿合奇县| 开化县| 张家界市| 乡宁县| 平阳县| 平江县| 辉县市| 塔河县| 汾阳市| 镇原县| 陵水| 佛坪县| 浦北县| 胶南市| 济阳县| 和顺县| 长春市| 安顺市| 丽水市| 阜康市| 汕头市| 和林格尔县| 荥经县| 隆昌县| 凤山县| 东丽区| 鄱阳县|