国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

prototype和__proto__直觀區(qū)別

MSchumi / 1538人閱讀

摘要:寫一個我最近遇到的例子來直觀的理解文件中的創(chuàng)建新類需要的配置項缺失定義類時繼承的類的配置項缺失此時的對象數(shù)據(jù)結(jié)構(gòu)見下圖,可以直觀觀察出和的區(qū)別小白和老鳥,或者叫孫子和爺爺也可以。

真正的prototype與__proto__的區(qū)別,在于prototype原始類設(shè)計者,也就是說,原始類設(shè)計人員需要對prototype進(jìn)行一系列操作,而__proto__則是二次開發(fā)人員,比如我var app = new Vue(),我想要為Vue實(shí)例添加一個方法,就要用app.__proto__,而app.prototype只有尤雨溪才有權(quán)限去修改。

顯式原型:prototype

隱式原型:__proto__

可以形象地抽象成2類人:

prototype:小白,個性張揚(yáng),飛揚(yáng)跋扈,大張旗鼓,做事生怕天下人都不知道。

__proto__:老鳥,個性沉穩(wěn),深藏功名,暗度陳倉,做事最親近的人都不告訴。
至于為什么,看了下文就能略知一二!

其實(shí)從字面意思就可以看出兩者區(qū)別。

顯式:明顯的,表現(xiàn)出來的,顯示出來的,當(dāng)前文件中肉眼可以看見的
隱式:隱藏的,沒有表現(xiàn)出來的,隱藏起來的,當(dāng)前文件中肉眼看不到的
原型:原型是Javascript繼承中的核心,通過對原型鏈從最上層向最下層進(jìn)行查找,來實(shí)現(xiàn)方法的調(diào)用。
寫一個我最近遇到的例子來直觀的理解:

html文件中的script:

        var myProgressOne = new mProgress();
        var myClickCallback = function(params){
            console.log(params);
        }

創(chuàng)建新mProgress類需要的script:

        var mProgress = function(){
        
        };
        mProgress.prototype = $.extend( new MCBASE(), {
                version:"0.0.1",
                template :"
" + "
", defaultOption : { "colors":[], "data": [], }, setDom: function( dom ){ this.wrap = this._setDom( dom ); if( !this.wrap ){ console.log("配置項缺失"); return false; } }, ... }

定義mProgress類時繼承的類的script:

       var MCBASE = function(){
           this.version = "0.0.1";
       };
       
       MCBASE.prototype = {
           _getMod : function( ){
               return this;
           },
           _setDom : function(  dom ){
               if( !dom || !dom.length ){
                   console.log("配置項缺失");
                   return null;
               }
           },
           _formateLargeData : function( largeData, fixed ){
           
           }
           ...
        };

此時的對象數(shù)據(jù)結(jié)構(gòu)見下圖,可以直觀觀察出prototype和__proto__的區(qū)別:
小白和老鳥,或者叫孫子和爺爺也可以。

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/83448.html

相關(guān)文章

  • 總結(jié)javascript基礎(chǔ)概念(三):js對象原型鏈

    摘要:執(zhí)行構(gòu)造函數(shù)的一步說明對象可以通過函數(shù)來創(chuàng)建。是最頂級的構(gòu)造函數(shù),對象里面,就有好幾個其他屬性。構(gòu)造函數(shù)與普通函數(shù)并沒有區(qū)別,只是調(diào)用方式不同。 主要問題:1、構(gòu)造函數(shù)和普通函數(shù)有區(qū)別么?什么區(qū)別?2、prototype和__proto__有什么不同?3、instanceof的作用機(jī)制,為什么有限制?4、ES6的相關(guān)方法,Class繼承原理? 三、對象與原型 (一)、數(shù)據(jù)類型 Js...

    yzd 評論0 收藏0
  • 淺談 JS 創(chuàng)建對象的 8 種模式

    摘要:模式工廠模式構(gòu)造器模式通過對象實(shí)現(xiàn)模式構(gòu)造器與原型方式的混合模式動態(tài)原型模式混合工廠模式模式字面量的表現(xiàn)形式等價于即以對象為一個原型模板新建一個以這個原型模板為原型的對象區(qū)別創(chuàng)建一個原型為的對象在里查看各個新建對象的區(qū)別可以看出前種模式創(chuàng)建 Objct 模式 工廠模式 構(gòu)造器模式 通過 Function 對象實(shí)現(xiàn) prototype 模式 構(gòu)造器與原型方式的混合模式 動態(tài)原型模式 混...

    caoym 評論0 收藏0
  • 深入理解 JavaScript 中的 class

    摘要:在規(guī)范中,引入了的概念。使用中的聲明一個類,是非常簡單的事。中面向?qū)ο髮?shí)例化的背后原理,實(shí)際上就是原型對象。與區(qū)別理解上述原理后,還需要注意與屬性的區(qū)別。實(shí)際上,在中,類繼承的本質(zhì)依舊是原型對象。 在 ES6 規(guī)范中,引入了 class 的概念。使得 JS 開發(fā)者終于告別了,直接使用原型對象模仿面向?qū)ο笾械念惡皖惱^承時代。 但是JS 中并沒有一個真正的 class 原始類型, clas...

    Vicky 評論0 收藏0
  • 淺談:快速理解JS的原型與原型鏈

    摘要:中有基本類型和復(fù)雜類型的區(qū)分。原型與原型鏈這里,就引入了兩個新的概念。原型對象就是用來存放聲明對象中共有的那部分屬性。而原型對象自身也是一個對象,它也有自己的原型對象。這樣層層上溯,就形成了一個類似鏈表的結(jié)構(gòu),這就是原型鏈。 JavaScript中有基本類型和復(fù)雜類型的區(qū)分。 當(dāng)我們在聲明一個基本類型時: var n1= 1; console.log(n1); //1 這時我們可以用N...

    ZoomQuiet 評論0 收藏0
  • 如果再被問到原型原型鏈......

    摘要:事后整理當(dāng)時的思路如下簡約版第一步是對象,對象都有原型也叫原型指針,指向構(gòu)造函數(shù)的原型對象。第二步是構(gòu)造函數(shù),構(gòu)造函數(shù)也是函數(shù),函數(shù)除了有原型對象外,也有原型指針。第四步作為中的內(nèi)建構(gòu)造函數(shù),同樣擁有原型指針和原型對象。 前段時間求職過程中,經(jīng)常會被問到關(guān)于原型和原型鏈,就問題本身而言并不難,主要是考察對JavaScript基本概念的理解,但如何能夠說明白確實(shí)需要認(rèn)真準(zhǔn)備下。 我印象比...

    muzhuyu 評論0 收藏0

發(fā)表評論

0條評論

MSchumi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<