最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

三張圖帶你搞懂JavaScript的原型對象與原型鏈

 更新時間:2022年07月05日 15:23:10   作者:水乙  
這篇文章介紹了JavaScript的原型對象與原型鏈,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

對于新人來說,JavaScript的原型是一個很讓人頭疼的事情,一來prototype容易與__proto__混淆,二來它們之間的各種指向?qū)嵲谟行碗s,其實市面上已經(jīng)有非常多的文章在嘗試說清楚,有一張所謂很經(jīng)典的圖,上面畫了各種線條,一會連接這個一會連接那個,說實話我自己看得就非常頭暈,更談不上完全理解了。所以我自己也想嘗試一下,看看能不能把原型中的重要知識點拆分出來,用最簡單的圖表形式說清楚。

我們知道原型是一個對象,其他對象可以通過它實現(xiàn)屬性繼承。但是尼瑪除了prototype,又有一個__proto__是用來干嘛的?長那么像,讓人怎么區(qū)分呢?它們都指向誰,那么混亂怎么記?。吭玩溣质鞘裁垂??相信不少初學者甚至有一定經(jīng)驗的老鳥都不一定能完全說清楚,下面用三張簡單的圖,配合一些示例代碼來理解一下。

一、prototype和__proto__的區(qū)別

var a = {};
console.log(a.prototype);  //undefined
console.log(a.__proto__);  //Object {}

var b = function(){}
console.log(b.prototype);  //b {}
console.log(b.__proto__);  //function() {}

/*1、字面量方式*/
var a = {};
console.log(a.__proto__);  //Object {}

console.log(a.__proto__ === a.constructor.prototype); //true

/*2、構(gòu)造器方式*/
var A = function(){};
var a = new A();
console.log(a.__proto__); //A {}

console.log(a.__proto__ === a.constructor.prototype); //true

/*3、Object.create()方式*/
var a1 = {a:1}
var a2 = Object.create(a1);
console.log(a2.__proto__); //Object {a: 1}

console.log(a.__proto__ === a.constructor.prototype); //false(此處即為圖1中的例外情況)

var A = function(){};
var a = new A();
console.log(a.__proto__); //A {}(即構(gòu)造器function A 的原型對象)
console.log(a.__proto__.__proto__); //Object {}(即構(gòu)造器function Object 的原型對象)
console.log(a.__proto__.__proto__.__proto__); //null

到此這篇關(guān)于JavaScript原型對象與原型鏈的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js轉(zhuǎn)義字符介紹

    js轉(zhuǎn)義字符介紹

    有時候js得到json串中含有"<"和">" ,那么兩個尖括號中間的文字是無法在html頁面顯示出來的,必須用轉(zhuǎn)義字符
    2013-11-11
  • js基石系列學習之錯誤類型

    js基石系列學習之錯誤類型

    這篇文章主要為大家介紹了js基石系列學習之錯誤類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 詳解JavaScript中|單豎杠運算符的使用方法

    詳解JavaScript中|單豎杠運算符的使用方法

    JavaScript中|單豎杠通常被用來對浮點型數(shù)字進行取證,這里同時也介紹了單豎杠的運算規(guī)則,下面我們就來詳解JavaScript中|單豎杠的使用方法
    2016-05-05
  • JavaScript實現(xiàn)關(guān)鍵字高亮功能

    JavaScript實現(xiàn)關(guān)鍵字高亮功能

    關(guān)鍵詞高亮技術(shù)各大CMS基本上都有,但基本都是后端代碼來實現(xiàn)的,今天我們探討下如何使用javascript來實現(xiàn)代碼高亮技術(shù)。
    2014-11-11
  • 在javascript中創(chuàng)建對象的各種模式解析

    在javascript中創(chuàng)建對象的各種模式解析

    下面小編就為大家?guī)硪黄趈avascript中創(chuàng)建對象的各種模式解析。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript中l(wèi)et避免閉包造成問題

    JavaScript中l(wèi)et避免閉包造成問題

    這篇文章主要介紹了JavaScript中l(wèi)et避免閉包造成問題,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • javascript基本語法

    javascript基本語法

    本文通過運算符、表達式、語句、函數(shù)、對象、事件、變量講解javascript的基本語法,需要的朋友可以參考下。
    2016-05-05
  • cancelBubble阻止事件冒泡

    cancelBubble阻止事件冒泡

    cancelBubble阻止事件冒泡...
    2006-10-10
  • 詳解js類型判斷

    詳解js類型判斷

    本篇文章給大家詳細分析了js類型判斷的相關(guān)知識點內(nèi)容,有興趣的朋友跟著學習下吧。
    2018-05-05
  • JavaScript學習筆記整理_用于模式匹配的String方法

    JavaScript學習筆記整理_用于模式匹配的String方法

    下面小編就為大家?guī)硪黄狫avaScript學習筆記整理_用于模式匹配的String方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論

霍城县| 胶南市| 仁布县| 宜都市| 固原市| 出国| 扬州市| 遂川县| 宁津县| 修文县| 沙坪坝区| 搜索| 瓦房店市| 阜南县| 永嘉县| 融水| 横山县| 南溪县| 蓬莱市| 江陵县| 青浦区| 吐鲁番市| 桃园县| 新巴尔虎左旗| 得荣县| 乐平市| 布尔津县| 康定县| 桐城市| 仁布县| 连云港市| 漳平市| 体育| 平南县| 磴口县| 岳阳市| 枞阳县| 登封市| 黑山县| 镇平县| 那坡县|