精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入淺出JavaScript之原型鏈和繼承

開發(fā) 前端
Javascript語言的繼承機制,它沒有”子類”和”父類”的概念,也沒有”類”(class)和”實例”(instance)的區(qū)分,全靠一種很奇特的”原型鏈”(prototype chain)模式,來實現(xiàn)繼承。

Javascript語言的繼承機制,它沒有”子類”和”父類”的概念,也沒有”類”(class)和”實例”(instance)的區(qū)分,全靠一種很奇特的”原型鏈”(prototype chain)模式,來實現(xiàn)繼承。

這部分知識也是JavaScript里的核心重點之一,同時也是一個難點。我把學(xué)習(xí)筆記整理了一下,方便大家學(xué)習(xí),同時自己也加深印象。這部分代碼的細節(jié)很多,需要反復(fù)推敲。那我們就開始吧。

小試身手

原型鏈例子(要點寫在注釋里,可以把代碼復(fù)制到瀏覽器里測試,下同)

 

  1. function foo(){}              //通過function foo(){}定義一個函數(shù)對象 
  2. foo.prototype.z = 3;          //函數(shù)默認帶個prototype對象屬性   (typeof foo.prototype;//"object") 
  3.  
  4. var obj =new foo();           //我們通過new foo()構(gòu)造器的方式構(gòu)造了一個新的對象 
  5. obj.y = 2;                    //通過賦值添加兩個屬性給obj 
  6. obj.x = 1;                    //通過這種方式構(gòu)造對象,對象的原型會指向構(gòu)造函數(shù)的prototype屬性,也就是foo.prototype 
  7.  
  8. obj.x; // 1                 //當(dāng)訪問obj.x時,發(fā)現(xiàn)obj上有x屬性,所以返回1 
  9. obj.y; // 2                 //當(dāng)訪問obj.y時,發(fā)現(xiàn)obj上有y屬性,所以返回2 
  10. obj.z; // 3                 //當(dāng)訪問obj.z時,發(fā)現(xiàn)obj上沒有z屬性,那怎么辦呢?它不會停止查找,它會查找它的原型,也就是foo.prototype,這時找到z了,所以返回3 
  11.  
  12. //我們用字面量創(chuàng)建的對象或者函數(shù)的默認prototype對象,實際上它也是有原型的,它的原型指向Object.prototype,然后Object.prototype也是有原型的,它的原型指向null。 
  13.                                    //那這里的Object.prototype有什么作用呢? 
  14. typeof obj.toString; // ‘function'   
  15.  
  16. //我們發(fā)現(xiàn)typeof obj.toString是一個函數(shù),但是不管在對象上還是對象的原型上都沒有toString方法,因為在它原型鏈的末端null之前都有個Object.prototype方法, 
  17. //而toString正是Object.prototype上面的方法。這也解釋了為什么JS基本上所有對象都有toString方法 
  18. 'z' in obj; // true               //obj.z是從foo.prototype繼承而來的,所以'z' in obj返回了true 
  19. obj.hasOwnProperty('z'); // false   //但是obj.hasOwnProperty('z')返回了false,表示z不是obj直接對象上的,而是對象的原型鏈上面的屬性。(hsaOwnProperty也是Object.prototype上的方法) 

剛才我們訪問x,y和z,分別通過原型鏈去查找,我們可以知道:當(dāng)我們訪問對象的某屬性時,而該對象上沒有相應(yīng)屬性時,那么它會通過原型鏈向上查找,一直找到null還沒有話,就會返回undefined。

基于原型的繼承

 

  1. function Foo(){ 
  2.    this.y = 2;      
  3.  
  4. Foo.prototype.x = 1
  5. var obj3 = new Foo();  //①當(dāng)使用new去調(diào)用的時候,函數(shù)會作為構(gòu)造器去調(diào)用②this會指向一個對象(這里是obj3),而這個對象的原型會指向構(gòu)造器的prototype屬性(這里是Foo.prototype) 
  6. obj3.y; //2  
  7. obj3.x; //1    //可以看到y(tǒng)是對象上的,x是原型鏈上的原型(也就是Foo.prototype上) 

 

prototype屬性與原型

我們再來看看Foo.prototype是什么樣的結(jié)構(gòu),當(dāng)我們用函數(shù)聲明去創(chuàng)建一個空函數(shù)的時候,那么這個函數(shù)就有個prototype屬性,并且它默認有兩個屬性,constructor和__proto__,

constructor屬性會指向它本身Foo,__proto__是在chrome中暴露的(不是一個標(biāo)準(zhǔn)屬性,知道就行),那么Foo.prototype的原型會指向Object.prototype。因此Object.prototype上

的一些方法toString,valueOf才會被每個一般的對象所使用。

 

  1. function Foo(){} 
  2. typeof Foo.prototype; // "object" 
  3. Foo.prototype.x = 1; 
  4. var obj3 = new Foo(); 

總結(jié)一下:我們這里有個Foo函數(shù),這個函數(shù)有個prototype的對象屬性,它的作用就是當(dāng)使用new Foo()去構(gòu)造實例的時候,這個構(gòu)造器的prototype屬性會用作new出來的這些對象的原型。

所以我們要搞清楚,prototype和原型是兩回事,prototype是函數(shù)對象上的預(yù)設(shè)屬性,原型通常是構(gòu)造器上的prototype屬性。

實現(xiàn)一個class繼承另外一個class

  1. function Person(name, age) { 
  2.    this.name = name;    //直接調(diào)用的話,this指向全局對象(this知識點整理) 
  3.    this.age = age;      //使用new調(diào)用Peoson的話,this會指向原型為Person.prototype的空對象,通過this.name給空對象賦值,***this作為return值 
  4.  
  5. Person.prototype.hi = function() {   //通過Person.prototype.hi創(chuàng)建所有Person實例共享的方法,(可以參考上節(jié)的左圖:對象的原型會指向構(gòu)造器的prototype屬性,所以想讓obj1,obj2,obj3共享一些方法的話,只需在原型對象上一次性地添加屬性和方法就可以了); 
  6.    console.log('Hi, my name is ' + this.name + ',I am ' + this.age + ' years old now.')//這里的this是全局對象 
  7. }; 
  8.  
  9. Person.prototype.LEGS_NUM = 2;   //再設(shè)置一些對Person類的所有實例共享的數(shù)據(jù) 
  10. Person.prototype.ARMS_NUM = 2; 
  11. Person.prototype.walk = function() { 
  12.   console.log(this.name + ' is walking...'); 
  13. }; 
  14.  
  15. function Student(name, age, className) {  //每個學(xué)生都屬于人 
  16.   Person.call(this, name, age);  //在Student這個子類里面先調(diào)用一下父類 
  17.   this.className = className; 
  18.  
  19. //下一步就是我們怎么去把Student的實例繼承Person.prototype的一些方法 
  20.  
  21. Student.prototype = Object.create(Person.prototype);    //Object.create():創(chuàng)建一個空對象,并且這個對象的原型指向它的參數(shù)  //這樣子我們可以在訪問Student.prototype的時候可以向上查找到Person.prototype,又可以在不影響Person的情況下,創(chuàng)建自己的方法 
  22. Student.prototype.constructor = Student;  //保持一致性,不設(shè)置的話constructor會指向Person 
  23.  
  24. Student.prototype.hi = function() {    //通過Student.prototype.hi這樣子的賦值可以覆蓋我們基類Person.prototype.hi 
  25.   console.log('Hi, my name is ' + this.name + ',I am ' + this.age + ' years old now, and from ' + this.className + '.'); 
  26. Student.prototype.learn = function(subject) {    //同時,我們又有自己的learn方法 
  27.   console.log(this.name + 'is learning ' + subject + ' at' + this.className + '.'); 
  28. }; 
  29.  
  30. //test 
  31. var yun = new Student('Yunyun', 22, 'Class 3,Grade 2'); 
  32. yun.hi(); //Hi,my name is Yunyun,I'm 22 years old now,and from Class 3, Grade 2. 
  33. console.log(yun.ARMS_NUM); // 2     //我們本身對象是沒有的,對象的原型也就是Student.prototype也沒有,但是我們用了繼承,繼續(xù)向上查找,找到了Person.prototype.ARMS_NUM,所以返回2 
  34. yun.walk(); //Yunyun is walking... 
  35. yun.learn('math'); //Yunyun is learning math at Class 3,Grade 2. 

 

結(jié)合圖我們來倒過來分析一下上面代碼:我們先通過new Student創(chuàng)建了一個Student的實例yun,yun的原型指向構(gòu)造器的prototype屬性(這里就是Student.prototype), Student.prototype上有hi方法和learn方法,Student.prototype是通過Object.create(Person.prototype)構(gòu)造的,所以這里的Student.prototype是空對象,并且這個對象的原型指向Person.prototype,接著我們在Person.prototype上也設(shè)置了LEGS_NUM,ARMS_NUM屬性以及hi,walk方法。然后我們直接定義了一個Person函數(shù),Person.prototype就是一個預(yù)置的對象,它本身也會有它的原型,它的原型就是Object.prototype,也正是因為這樣,我們隨便一個對象才會有hasOwnProperty,valueOf,toString這樣些公共的函數(shù),這些函數(shù)都是從Object.prototype上來的。這樣子就實現(xiàn)了基于原型鏈的繼承。       那我們調(diào)用hi,walk,learn方法的時候發(fā)生了什么呢?比如我們調(diào)用hi方法的時候,我們首先看這個對象yun上有沒有hi方法,但是在這個實例中沒有所以會向上查找,查找到y(tǒng)un的原型也就是Student.protoype上有這hi方法,所以最終調(diào)用的是Student.prototype.hi,調(diào)用其他方法也是類似的。

改變prototype

我們知道JavaScript中的prototype原型不像Java中的class,Java中的class一旦寫好就很難動態(tài)的去改變了,但是JavaScript中的原型實際上也是普通的對象,那就意味著在程序運行的階段,我們也可以動態(tài)的給prototype添加或刪除些屬性。

在上述代碼的基礎(chǔ)上,我們已經(jīng)有yun這個實例了,我們接著來進行實驗:

 

  1. tudent.prototype.x = 101;        //通過Student.prototype.x把yun的原型動態(tài)地添加一個屬性x 
  2. yun.x;   //101                    //那我們發(fā)現(xiàn)所有的實例都會受到影響 
  3. //接著我們做個有趣的實驗 
  4. Student.prototype = {y:2};        //我們直接修改構(gòu)造器的prototype屬性,把它賦值為一個新的對象 
  5. yun.y;  //undefined                
  6. yun.x;  //101                     //所以我們得出:當(dāng)我們修改Student.prototype值的時候,并不能修改已經(jīng)實例化的對象 
  7. var Tom = new Student('Tom',3,'Class LOL KengB');   
  8. Tom.x; //undefined                //但當(dāng)我們創(chuàng)建一個新的實例時,這一次x就不見了, 
  9. Tom.y; //2                        //并且y是新的值 

所以說當(dāng)動態(tài)修改prototype的時候,是會影響所有已創(chuàng)建或新創(chuàng)建的實例的,但是修改整個prototype賦值為新的對象的話,對已創(chuàng)建的實例是不會影響的,但是會影響后續(xù)的實例。

實現(xiàn)繼承的方式

實現(xiàn)繼承有多種方式,下面我們還是以Person和Student來分析

 

  1. function Person() { 
  2.  
  3. function Student() { 
  4.  
  5. Student.prototype = Person.prototype; // 我們可不可用這種方式呢?這種方法是錯誤的:因為子類Student有自己的一些方法 
  6. //,如果通過這樣子賦值,改變Student的同時也改變了Person。 
  7.  
  8. Student.prototype = new Person(); //這種方式是可以實現(xiàn)的,但是調(diào)用構(gòu)造函數(shù)有時候也是有問題的,比如要傳進Person一個name和age 
  9. //,這里的Student是個類,還沒實例化,這時候有些奇怪了,傳什么都不是。 
  10.  
  11. Student.prototype = Object.create(Person.prototype); //相對來說這中方式是比較理想的,這里我們創(chuàng)建了一個空的對象 
  12. //,并且對象的原型指向Person.prototype,這樣我們既保證了繼承了Person.prototype上的方法,并且Student.prototype又有自己空的對象。 
  13. //但是Object.create是ES5以后才有的
責(zé)任編輯:張燕妮 來源: 牧云云
相關(guān)推薦

2022-05-26 09:20:01

JavaScript原型原型鏈

2022-09-26 09:01:15

語言數(shù)據(jù)JavaScript

2012-02-21 13:55:45

JavaScript

2022-10-31 09:00:24

Promise數(shù)組參數(shù)

2010-07-16 09:11:40

JavaScript內(nèi)存泄漏

2023-12-04 13:22:00

JavaScript異步編程

2009-11-18 13:30:37

Oracle Sequ

2009-11-17 17:31:58

Oracle COMM

2013-09-16 09:56:29

TCP協(xié)議網(wǎng)絡(luò)協(xié)議send

2011-05-30 14:41:09

Javascript閉

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2013-11-14 15:53:53

AndroidAudioAudioFlinge

2017-04-07 11:15:49

原型鏈原型Javascript

2009-06-22 15:34:00

Javascript

2009-06-18 10:23:03

Javascript 基本框架

2021-08-11 07:54:47

Commonjs

2009-03-16 15:55:21

Java責(zé)任鏈模式

2021-07-20 15:20:02

FlatBuffers阿里云Java

2017-07-02 18:04:53

塊加密算法AES算法
點贊
收藏

51CTO技術(shù)棧公眾號

国产高清一区二区| 国产成人77亚洲精品www| av在线播放一区二区三区| 91精品成人久久| 90岁老太婆乱淫| 涩涩涩久久久成人精品| 亚洲成av人片一区二区梦乃| 色视频一区二区三区| 99热这里只有精品5| 亚洲一区二区毛片| 久久精品人人做人人爽| 风间由美一二三区av片| 亚洲一区二区小说| 欧美性猛交xxxx乱大交| 九九久久九九久久| 777电影在线观看| 成人av在线观| 亚洲精品欧美日韩专区| 亚洲精品国产精品乱码视色| 亚洲电影成人| 久久夜精品香蕉| 精品人妻无码一区| 国产精品三p一区二区| 777奇米成人网| 能在线观看的av网站| 999精品网| 一区二区三区 在线观看视频| 亚洲春色在线视频| 三级在线播放| 成年人网站91| 成人av电影免费| 91九色蝌蚪91por成人| 视频一区免费在线观看| 性色av一区二区三区红粉影视| 精品自拍偷拍视频| 日韩在线观看一区| 一个色综合导航| 人妻体内射精一区二区| 久久动漫网址| 亚洲第一视频在线观看| 亚洲av无码成人精品区| 曰本女人与公拘交酡| 羞羞视频在线免费国产| 亚洲欧洲精品成人久久奇米网| 欧美精品国产精品久久久| 日本免费网站在线观看| 国产91丝袜在线播放| 亚洲www视频| 91午夜交换视频| 韩国午夜理伦三级不卡影院| 国产精品久久久久久久久久免费 | 一区二区三区日韩| 经典三级在线视频| 国产福利视频在线观看| 椎名由奈av一区二区三区| 三年中文高清在线观看第6集| 91九色在线porn| 国产精品三级电影| 亚洲人久久久| 成人免费看片| 亚洲在线观看免费视频| 极品粉嫩国产18尤物| xxx.xxx欧美| 欧美日韩国产一中文字不卡| 免费看的黄色大片| 亚洲精品国产嫩草在线观看| 欧美三级蜜桃2在线观看| 中文字幕国内自拍| 国产不卡精品| 欧美精品一区二区三区蜜桃视频| 免费看毛片的网站| 免费精品国产的网站免费观看| 亚洲精品视频二区| 干b视频在线观看| 久久国产影院| 久久中文字幕一区| 久久久久噜噜噜亚洲熟女综合| 亚洲黄色精品| 日韩av手机在线看| 一级片在线观看视频| 国产精品一区免费视频| 黄色99视频| 色综合久久影院| 三级中文字幕在线观看| 亚洲图片欧美色图| 成人免费毛片播放| 日本在线视频一区二区三区| 亚洲精品国产精品久久清纯直播 | 亚洲少妇30p| 18禁裸男晨勃露j毛免费观看| v天堂福利视频在线观看| 午夜精彩视频在线观看不卡| 亚洲一级片网站| 国产精品一区二区中文字幕| 在线观看中文字幕亚洲| 精品少妇久久久| 日韩成人午夜精品| av一区观看| 超碰国产在线| 精品福利视频导航| 国产美女18xxxx免费视频| 九九热hot精品视频在线播放| 在线精品91av| 亚洲免费在线观看av| 国产一区二区在线免费观看| 九九九热999| 制服丝袜中文字幕在线| 91电影在线观看| 岛国精品一区二区三区| 中文字幕在线日本| 精品一区二区三区日韩| 久久婷婷开心| 伊人手机在线| 欧美丝袜第三区| 久久人人爽人人爽人人片| 亚洲国产老妈| 国产日韩欧美视频| 欧美18xxxxx| 亚洲成人777| 日本r级电影在线观看| 精品久久91| 91福利视频在线观看| 96pao国产成视频永久免费| 国产一级二级三级| 国产呦萝稀缺另类资源| 性欧美videosex高清少妇| 欧美13videosex性极品| 日韩欧美的一区| 欧美日韩午夜视频| 久久成人羞羞网站| 亚洲国产婷婷香蕉久久久久久99| 色综合桃花网| 国产视频久久久久| 日本少妇在线观看| 成人深夜在线观看| 免费视频爱爱太爽了| 欧州一区二区三区| 欧美成人免费全部| 国产高清在线观看视频| 亚洲男人都懂的| 宇都宫紫苑在线播放| 91精品天堂福利在线观看| 国产精品一区二区三区免费视频| yiren22亚洲综合伊人22| 色94色欧美sute亚洲13| 国产高潮呻吟久久| 日本人妖一区二区| 亚洲欧洲日夜超级视频| 欧美一区=区三区| 久久精品成人欧美大片古装| 亚洲精品一区二区二区| 国产精品毛片大码女人| 国产3p在线播放| 在线观看国产精品入口| 97超碰人人看人人| 91色在线看| 亚洲精品之草原avav久久| 亚洲中文字幕无码爆乳av| 国产精品久久久久久久久久久免费看| 亚洲欧美日韩精品一区| 你懂的一区二区| 国产视色精品亚洲一区二区| 在线观看的黄色| 亚洲香蕉成视频在线观看| 中文字幕网址在线| 日韩美女视频一区| 韩国三级hd两男一女| 美女久久网站| 亚洲一区二区三区精品视频 | 在线观看91精品国产入口| 69xxx免费| 国产一区二区三区美女| 18禁网站免费无遮挡无码中文| 香蕉久久精品日日躁夜夜躁| 国产精品美女在线| 香蕉久久aⅴ一区二区三区| 亚洲а∨天堂久久精品喷水 | 日韩av网站在线观看| 亚洲一区高清| 嗯用力啊快一点好舒服小柔久久| 清纯唯美亚洲综合| 日本欧美在线视频免费观看| 欧美成人vr18sexvr| 国产综合精品视频| 中文字幕一区在线观看视频| 亚洲无人区码一码二码三码| 肉丝袜脚交视频一区二区| 免费观看黄色大片| 欧美黄色网视频| 国产在线视频不卡| а√天堂中文资源在线bt| 中文字幕国产精品久久| 囯产精品久久久久久| 在线精品视频一区二区三四| 久久久久香蕉视频| 亚洲国产高清在线观看视频| 中文字幕永久免费| 免费在线观看精品| 亚洲一区二区三区av无码| 欧美一级淫片| 国内外成人免费视频| 日韩免费大片| 2018日韩中文字幕| 26uuu亚洲电影在线观看| 亚洲人线精品午夜| 午夜精品久久久久久久第一页按摩| 一本在线高清不卡dvd| 欧美黄色一级网站| 欧美国产一区二区| 久久久久国产精品无码免费看| 精品一区二区三区免费视频| 六月婷婷在线视频| 中文字幕一区二区三区在线视频 | 亚洲一级片在线播放| 国产成人午夜高潮毛片| 超碰超碰在线观看| youjizzjizz亚洲| 91人成网站www| 蜜桃视频成人m3u8| 欧美在线免费看| 超碰99在线| 久久精品视频va| 成年午夜在线| 亚洲欧洲高清在线| 午夜一区在线观看| 成人免费在线视频| 美国黄色特级片| 国产三级精品三级| 37p粉嫩大胆色噜噜噜| 91小视频免费看| 97精品人妻一区二区三区蜜桃| 国产美女久久久久| www.com污| 久久国产生活片100| 亚洲性图一区二区| 久久99国产精品久久99| 深夜黄色小视频| 免费美女久久99| 亚洲精品视频导航| 视频在线观看国产精品| 色一情一乱一伦一区二区三区日本| 香蕉视频成人在线观看| 91av资源网| 美女久久网站| 欧美大尺度做爰床戏| 肉丝袜脚交视频一区二区| 成年人在线观看视频免费| 免费av成人在线| 超碰成人在线播放| 国产一区欧美二区| 丰满人妻一区二区三区免费视频棣 | 亚洲激情五月婷婷| 久久成人国产精品入口| 午夜精品久久久久久久久久久| 日韩女优在线观看| 欧美午夜精品久久久久久人妖| 人妻丰满熟妇av无码区| 在线视频欧美精品| 91好色先生tv| 日韩欧美一区中文| 天天操天天操天天| 国产一区二区成人| bestiality新另类大全| 久久人人爽人人| 电影网一区二区| 国产日韩中文字幕| 97精品久久| 欧美中日韩免费视频| 91麻豆精品国产91久久久平台| 成人在线观看毛片| 欧美亚洲一区| 一区二区三区 日韩| 国产电影一区二区三区| 少妇丰满尤物大尺度写真| 99久久久久久| 激情五月深爱五月| 亚洲一区二区欧美激情| 欧美a视频在线观看| 在线91免费看| 午夜国产在线观看| 深夜福利91大全| bbw在线视频| 国产狼人综合免费视频| 成人午夜大片| 日韩性感在线| 在线欧美福利| 亚洲欧美日韩精品一区| 91欧美一区二区| 国产尤物在线播放| 日韩欧美一区二区在线| av网站免费播放| 亚洲午夜性刺激影院| 丰乳肥臀在线| 国产日韩欧美在线播放| 九色丨蝌蚪丨成人| 免费观看中文字幕| 久久国产66| 动漫av在线免费观看| 亚洲国产精品精华液2区45| 国产精品a成v人在线播放| 欧美午夜精品久久久| 日本精品999| 久久久999精品| 成人va天堂| 精品久久蜜桃| 欧美精品综合| jizzzz日本| 久久久噜噜噜久久中文字幕色伊伊| 欧美激情精品久久| 欧美久久久久久久久中文字幕| 亚洲av成人精品毛片| 欧美黑人视频一区| 一区二区三区无毛| 日本一区免费| 午夜在线精品偷拍| 国产原创剧情av| 亚洲精选一二三| 亚洲一级片免费看| 国产午夜精品免费一区二区三区 | 成人在线一级片| 午夜精品影院在线观看| 精品人妻少妇嫩草av无码专区| www.色综合| 日韩电影精品| 日韩中文不卡| 亚洲欧美不卡| 玖玖爱在线观看| 欧美日韩国产麻豆| 免费观看黄色一级视频| 欧美激情一区二区三区久久久| 久久伊人久久| 欧美少妇一区二区三区| 国产九九视频一区二区三区| 日韩欧美在线视频播放| 精品婷婷伊人一区三区三| av在线电影网| 国产区精品在线观看| 日本一区二区免费高清| 国产精品一区二区小说| 欧美激情一区二区三区在线| 国产精品欧美综合| 中文字幕欧美在线| 国产成人福利夜色影视| 亚洲永久一区二区三区在线| 日本不卡免费在线视频| 欧美乱大交做爰xxxⅹ小说| 欧美日韩精品电影| 精品麻豆一区二区三区| 亚洲综合在线播放| 伊人久久久大香线蕉综合直播 | 国产精品无码永久免费888| 中文字幕91爱爱| 日韩中文字幕欧美| 国内精品视频| 日本手机在线视频| av一本久道久久综合久久鬼色| 色婷婷av国产精品| 国产午夜精品一区二区三区| 久久久久久久性潮| 日韩精品久久一区二区| 成a人片亚洲日本久久| 一级做a爰片久久毛片| 日韩中文字幕免费看| 一级毛片精品毛片| 国产黄色一级网站| 国产欧美精品在线观看| 国产一区二区三区在线观看| 久久91亚洲人成电影网站| 久久午夜影院| 日韩av片网站| 一区二区三区免费观看| 天堂а√在线8种子蜜桃视频| 国产精品aaa| 欧美日韩影院| 国产毛片久久久久久久| 91精品国产一区二区| 激情国产在线| 中文字幕久久一区| 99久久精品国产毛片| 国产情侣第一页| 欧美日韩一区二区国产| 美女爆乳18禁www久久久久久| 717成人午夜免费福利电影| freexxx性亚洲精品| 污视频在线免费观看一区二区三区| 国产一区二区三区在线观看免费 | 欧美 日韩 国产 一区二区三区| 亚洲娇小xxxx欧美娇小| 久久免费资源| 日本中文字幕网址| 最新成人av在线| 亚州男人的天堂| 91在线观看免费高清| 亚洲欧美日韩国产| 久久久久久久久精| 在线午夜精品自拍| 欧美大片网址| 精品国产午夜福利在线观看| 欧美性色aⅴ视频一区日韩精品| 免费在线看电影|