成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 開發工具
我們知道原型是一個對象,其他對象可以通過它實現屬性繼承。但是除了prototype,又有一個__proto__是用來干嘛的?下面用三張簡單的圖,配合一些示例代碼來理解一下。

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

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

prototype和__proto__的區別

  1.  var a = {};  
  2. console.log(a.prototype);  //undefined  
  3. console.log(a.__proto__);  //Object {}  
  4.   
  5. var b = function(){}  
  6. console.log(b.prototype);  //b {}  
  7. console.log(b.__proto__);  //function() {} 

__proto__屬性

  1. /*1、字面量方式*/  
  2. var a = {};  
  3. console.log(a.__proto__);  //Object {}  
  4.   
  5. console.log(a.__proto__ === a.constructor.prototype); //true  
  6.   
  7. /*2、構造器方式*/  
  8. var A = function(){};  
  9. var a = new A();  
  10. console.log(a.__proto__); //A {}  
  11.   
  12. console.log(a.__proto__ === a.constructor.prototype); //true  
  13.   
  14. /*3、Object.create()方式*/  
  15. var a1 = {a:1}  
  16. var a2 = Object.create(a1);  
  17. console.log(a2.__proto__); //Object {a: 1}  
  18.   
  19. console.log(a.__proto__ === a.constructor.prototype); //false(此處即為圖1中的例外情況) 

原型鏈

  1. var A = function(){};  
  2. var a = new A();  
  3. console.log(a.__proto__); //A {}(即構造器function A 的原型對象)  
  4. console.log(a.__proto__.__proto__); //Object {}(即構造器function Object 的原型對象)  
  5. console.log(a.__proto__.__proto__.__proto__); //null 

【本文為51CTO專欄作者“謝軍”的原創稿件,轉載可通過作者微信公眾號(jingfeng18)獲取聯系】

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-10-20 08:35:34

JS基礎進階

2020-02-20 14:00:15

JavaScript原型原型鏈

2022-05-26 09:20:01

JavaScript原型原型鏈

2023-08-28 07:12:54

2017-04-07 11:15:49

原型鏈原型Javascript

2019-02-27 16:00:48

JS原型原型鏈對象

2016-06-07 14:28:39

Javascript原型

2012-01-05 15:07:11

JavaScript

2012-11-08 10:40:47

JavaScript原型鏈

2024-05-15 18:59:01

JavaScript語言原型

2016-05-06 14:02:18

JavaScript原型鏈

2024-08-09 12:44:45

JavaScript原型鏈鏈條

2020-09-10 07:04:30

JSJavaScript 原型鏈

2022-05-26 23:14:26

原型原型鏈JS繼承

2011-08-31 14:48:33

JavaScript

2010-10-08 09:13:15

oop模式JavaScript

2022-03-29 09:15:55

Javascript函數屬性

2015-11-26 13:11:24

javascript原型鏈作用域

2024-08-27 12:36:33

2013-09-18 14:01:46

JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品产国自在拍 | 亚洲免费在线视频 | 91传媒在线观看 | 国产 欧美 日韩 一区 | 青青草精品视频 | 欧美日韩专区 | 久久久久国产精品人 | 国产精品观看 | 夜夜精品视频 | 成人看片在线观看 | 中文字幕一级毛片视频 | 在线一区二区三区 | 草草视频在线观看 | 久久69精品久久久久久久电影好 | 干狠狠| 国产精品亚洲一区 | 欧美在线一区二区三区四区 | 久久99精品久久久久久琪琪 | 国产亚洲网站 | 亚洲欧洲精品在线 | 日韩一区二区三区视频 | 91视频在线看 | 色综合天天综合网国产成人网 | 国产ts人妖系列高潮 | 久久亚洲一区二区三区四区 | 亚洲精品在线免费观看视频 | 欧美日日 | 久久久精品天堂 | 无人区国产成人久久三区 | 九九久久免费视频 | 色久影院 | 国产成人精品一区二区三区视频 | 亚洲综合一区二区三区 | 视频在线日韩 | 中文字幕精品一区二区三区精品 | 国产在线网站 | 精品国产乱码久久久久久蜜退臀 | 日韩欧美在线一区 | 日本国产欧美 | 欧美狠狠操 | 久久逼逼|