成人免费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-02-20 14:00:15

JavaScript原型原型鏈

2020-10-20 08:35:34

JS基礎進階

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 原型鏈

2011-08-31 14:48:33

JavaScript

2022-05-26 23:14:26

原型原型鏈JS繼承

2022-03-29 09:15:55

Javascript函數屬性

2010-10-08 09:13:15

oop模式JavaScript

2015-11-26 13:11:24

javascript原型鏈作用域

2024-08-27 12:36:33

2016-12-27 09:10:29

JavaScript原型鏈繼承
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久国久产久精永久网页 | 一区二区国产精品 | 国产精品中文字幕在线播放 | 一区二区三区成人 | 涩涩视频在线播放 | 午夜视频在线观看网址 | 成年人黄色小视频 | 九九伦理电影 | 亚洲视频二| 亚洲毛片在线 | 国产精品久久久久久久久久久久午夜片 | 给我免费的视频在线观看 | 欧美精品久久久久久久久老牛影院 | 日韩精品一区二区三区中文字幕 | 中文字字幕在线中文乱码范文 | 欧美日韩国产精品 | 精品国产乱码久久久久久图片 | 久久婷婷色 | caoporn免费 | 中文字幕在线看 | 欧美成人一区二区三区 | 91九色porny首页最多播放 | 日韩免费福利视频 | 国产极品车模吞精高潮呻吟 | 国产精品成人一区二区 | 亚洲三级在线观看 | 鸳鸯谱在线观看高清 | 蜜桃av一区二区三区 | 欧美xxxx黑人又粗又长 | 日韩精品成人 | 不卡一区二区三区四区 | 亚洲成人精品一区 | 亚洲一区二区三区在线免费 | 91久久| 日韩乱码av | 天天干天天操天天看 | 中文字幕亚洲一区二区三区 | 久久久久亚洲 | 亚洲国产免费 | 日一区二区 | www.av在线|