日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
三張圖搞懂JavaScript的原型對象與原型鏈

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

創(chuàng)新互聯(lián)公司是專業(yè)的北川羌族網(wǎng)站建設(shè)公司,北川羌族接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行北川羌族網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

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

 
 
 
 
  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() {} 

 
 
 
 
  1. /*1、字面量方式*/  
  2. var a = {};  
  3. console.log(a.__proto__);  //Object {}  
  4.   
  5. console.log(a.__proto__ === a.constructor.prototype); //true  
  6.   
  7. /*2、構(gòu)造器方式*/  
  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 {}(即構(gòu)造器function A 的原型對象)  
  4. console.log(a.__proto__.__proto__); //Object {}(即構(gòu)造器function Object 的原型對象)  
  5. console.log(a.__proto__.__proto__.__proto__); //null 

【本文為專欄作者“謝軍”的原創(chuàng)稿件,轉(zhuǎn)載可通過作者微信公眾號(jingfeng18)獲取聯(lián)系】


網(wǎng)頁名稱:三張圖搞懂JavaScript的原型對象與原型鏈
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/djepcds.html