亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Object.create()介紹

Zachary / 1026人閱讀

摘要:我們可以利用它們?nèi)?shí)現(xiàn)數(shù)據(jù)的過濾和數(shù)據(jù)的綁定。實(shí)現(xiàn)一些簡單的的效果繼承的應(yīng)用的實(shí)例繼承了的屬性劃重點(diǎn)相對于構(gòu)造函數(shù)的繼承繼承實(shí)現(xiàn)了將的原型完美分隔。雙方不會互相影響。

Object.create(null) 創(chuàng)建的對象是一個(gè)空對象,在該對象上沒有繼承 Object.prototype 原型鏈上的屬性或者方法
例如:toString(), hasOwnProperty()等方法

參數(shù) 說明
obj 創(chuàng)建對象的原型,表示要繼承的對象
propertiesObject(可選 ) 也是一個(gè)對象,用于對新創(chuàng)建的對象進(jìn)行初始化

我們來看看底層實(shí)現(xiàn)

    Object.create =  function (o) {
        var F = function () {};
        F.prototype = o;
        return new F();
    };

下面我們來看具體應(yīng)用:

    //創(chuàng)建一個(gè)Obj對象
    var Obj ={
        name:"mini",
        age:3,
        show:function () {
            console.log(this.name +" is " +this.age);
        }
    }

    //MyObj 繼承obj, prototype指向Obj
    var MyObj = Object.create(Obj,{
        like:{
            value:"fish",        // 初始化賦值
            writable:true,       // 是否是可改寫的
            configurable:true,   // 是否能夠刪除,是否能夠被修改
            enumerable:true      //是否可以用for in 進(jìn)行枚舉
        },
        hate:{
            configurable:true,
            get:function () { console.log(111);  return "mouse" }, // get對象hate屬性時(shí)觸發(fā)的方法
            set:function (value) {                                 // set對象hate屬性時(shí)觸發(fā)的方法 
                console.log(value,2222);
                return value;
            }    
        }
    });
    
劃重點(diǎn):這里get和set 方法似乎還蘊(yùn)含更大的潛力 。我們可以利用它們?nèi)?shí)現(xiàn)數(shù)據(jù)的過濾和數(shù)據(jù)的綁定 。實(shí)現(xiàn)一些簡單的mvvm的效果

Object.create繼承的應(yīng)用:

    var A = function () { };
    A.prototype.sayName=function () {
        console.log("a");
    }

    // B的實(shí)例繼承了A的屬性
    var B = function () { };
    B.prototype = Object.create(A.prototype);
    var b = new B();
    b.sayName();  // a
劃重點(diǎn):相對于構(gòu)造函數(shù)的繼承Object.create繼承實(shí)現(xiàn)了將A,B的原型完美分隔 。雙方不會互相影響。這是Object.create亮點(diǎn)所在

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/99893.html

相關(guān)文章

  • JavaScript ES5之Object.create函數(shù)詳解

    介紹 在創(chuàng)建對象的時(shí)候,我們有2種常用方法 一個(gè)是文本標(biāo)記法(var obj = {}),一種是運(yùn)用Object函數(shù)進(jìn)行對象的創(chuàng)建(new Object()). 但是這兩種方式并不是創(chuàng)建的一個(gè)完完全全干干凈凈的對象,這里的干凈只得是沒有繼承鏈. 幸運(yùn)的是,ES5為我們提供了一種創(chuàng)建完全干凈的對象的方法,Object.create函數(shù),接下我將向大家介紹Obje...

    zhaofeihao 評論0 收藏0
  • JS核心知識點(diǎn)梳理——原型、繼承(下)

    摘要:引言上篇文章介紹原型,這篇文章接著講繼承,嘔心瀝血之作,大哥們點(diǎn)個(gè)贊呀明確一點(diǎn)并不是真正的面向?qū)ο笳Z言,沒有真正的類,所以我們也沒有類繼承實(shí)現(xiàn)繼承有且僅有兩種方式,和原型鏈在介紹繼承前我們先介紹下其他概念函數(shù)的三種角色一個(gè)函數(shù),有三種角色。 showImg(https://segmentfault.com/img/bVbo4hv?w=1800&h=1000); 引言 上篇文章介紹原型,...

    joyqi 評論0 收藏0
  • 犀牛書——CHAP6:對象

    摘要:對象是屬性的無序集合。使用對象直接量創(chuàng)建的對象的原型就是,使用運(yùn)算符創(chuàng)建的對象的原型是構(gòu)造函數(shù)的的值。主要目的是將對象鎖定,避免外界干擾。判斷對象是否封閉。刪除屬性可刪除對象的自有屬性且為的屬性。 對象是屬性的無序集合。因此,這一章主要從對象和屬性兩個(gè)方面來闡述。showImg(https://box.worktile.com/view/c8f5f376fe314aeca69d9b4c...

    philadelphia 評論0 收藏0
  • 基于原型的JavaScript繼承 - 面向?qū)ο蟮腏avaScript - JavaScript核心

    摘要:基于原型的繼承誠惶誠恐的寫下這篇文章。無論是還是,都是面向?qū)ο蟮?。將這個(gè)新對象作為構(gòu)造函數(shù)的執(zhí)行上下文其指向這個(gè)對象,并執(zhí)行構(gòu)造函數(shù)返回這個(gè)對象原型繼承我們來定義一個(gè)簡單的類和它的原型我們在原型上定義了一個(gè)方法。 源碼: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/JavaScr...

    Acceml 評論0 收藏0
  • 【JS基礎(chǔ)】Object 對象的原型概念詳解

    摘要:使用操作符,創(chuàng)建一個(gè)對象,并且執(zhí)行構(gòu)造函數(shù)方法。使用可以返回一個(gè)字典型對象對象原型每一個(gè)對象都有一個(gè)內(nèi)置的屬性指向構(gòu)造它的函數(shù)屬性而構(gòu)造函數(shù)的則指向構(gòu)造函數(shù)本生。 對象概念 在 javascript 中, 一切引用類型均為對象。 如 function Foo () {} 中,F(xiàn)oo本身就是一個(gè)對象的引用。 創(chuàng)建對象方式 字面量方式 new 構(gòu)造函數(shù) 函數(shù)聲明 Object.creat...

    appetizerio 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<