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

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

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

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

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

一、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、構造器方式*/
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 {}(即構造器function A 的原型對象)
console.log(a.__proto__.__proto__); //Object {}(即構造器function Object 的原型對象)
console.log(a.__proto__.__proto__.__proto__); //null

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

相關文章

  • js轉義字符介紹

    js轉義字符介紹

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

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

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

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

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

    JavaScript實現關鍵字高亮功能

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

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

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

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

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

    javascript基本語法

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

    cancelBubble阻止事件冒泡

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

    詳解js類型判斷

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

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

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

最新評論

登封市| 乌什县| 营山县| 万载县| 土默特右旗| 昌图县| 宕昌县| 交城县| 固镇县| 神木县| 阜平县| 汾西县| 晋江市| 德格县| 黑水县| 兴安县| 三亚市| 武功县| 房产| 海晏县| 曲沃县| 甘谷县| 普安县| 丹阳市| 德令哈市| 疏勒县| 竹山县| 务川| 长垣县| 吴桥县| 贡觉县| 沙洋县| 鹿泉市| 阳谷县| 甘泉县| 曲沃县| 邵武市| 通渭县| 沙河市| 将乐县| 林周县|