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

深入理解JavaScript作用域和作用域鏈

開(kāi)發(fā) 前端
作用域是JavaScript最重要的概念之一,想要學(xué)好JavaScript就需要理解JavaScript作用域和作用域鏈的工作原理。今天這篇文章對(duì)JavaScript作用域和作用域鏈作簡(jiǎn)單的介紹,希望能幫助大家更好的學(xué)習(xí)JavaScript。

作用域是JavaScript最重要的概念之一,想要學(xué)好JavaScript就需要理解JavaScript作用域和作用域鏈的工作原理。今天這篇文章對(duì)JavaScript作用域和作用域鏈作簡(jiǎn)單的介紹,希望能幫助大家更好的學(xué)習(xí)JavaScript。

51CTO推薦專題:JavaScript入門

JavaScript作用域

任何程序設(shè)計(jì)語(yǔ)言都有作用域的概念,簡(jiǎn)單的說(shuō),作用域就是變量與函數(shù)的可訪問(wèn)范圍,即作用域控制著變量與函數(shù)的可見(jiàn)性和生命周期。在JavaScript中,變量的作用域有全局作用域和局部作用域兩種。

1. 全局作用域(Global Scope)

在代碼中任何地方都能訪問(wèn)到的對(duì)象擁有全局作用域,一般來(lái)說(shuō)一下幾種情形擁有全局作用域:

(1)最外層函數(shù)和在最外層函數(shù)外面定義的變量擁有全局作用域,例如:

  1. var authorName="山邊小溪";  
  2. function doSomething(){  
  3.     var blogName="夢(mèng)想天空";  
  4.     function innerSay(){  
  5.         alert(blogName);  
  6.     }  
  7.     innerSay();  
  8. }  
  9. alert(authorName); //山邊小溪  
  10. alert(blogName); //腳本錯(cuò)誤  
  11. doSomething(); //夢(mèng)想天空  
  12. innerSay() //腳本錯(cuò)誤 

(2)所有末定義直接賦值的變量自動(dòng)聲明為擁有全局作用域,例如:

  1. function doSomething(){  
  2.     var authorName="山邊小溪";  
  3.     blogName="夢(mèng)想天空";  
  4.     alert(authorName);  
  5. }  
  6. alert(blogName); //夢(mèng)想天空  
  7. alert(authorName); //腳本錯(cuò)誤 

變量blogName擁有全局作用域,而authorName在函數(shù)外部無(wú)法訪問(wèn)到。

(3)所有window對(duì)象的屬性擁有全局作用域

一般情況下,window對(duì)象的內(nèi)置屬性都都擁有全局作用域,例如window.name、window.location、window.top等等。

1. 局部作用域(Local Scope)

和全局作用域相反,局部作用域一般只在固定的代碼片段內(nèi)可訪問(wèn)到,最常見(jiàn)的例如函數(shù)內(nèi)部,所有在一些地方也會(huì)看到有人把這種作用域成為函數(shù)作用域,例如下列代碼中的blogName和函數(shù)innerSay都只擁有局部作用域。

  1. function doSomething(){  
  2.     var blogName="夢(mèng)想天空";  
  3.     function innerSay(){  
  4.         alert(blogName);  
  5.     }  
  6.     innerSay();  
  7. }  
  8. alert(blogName); //腳本錯(cuò)誤  
  9. innerSay(); //腳本錯(cuò)誤 

作用域鏈(Scope Chain)

在JavaScript中,函數(shù)也是對(duì)象,實(shí)際上,JavaScript里一切都是對(duì)象。函數(shù)對(duì)象和其它對(duì)象一樣,擁有可以通過(guò)代碼訪問(wèn)的屬性和一系列僅供JavaScript引擎訪問(wèn)的內(nèi)部屬性。其中一個(gè)內(nèi)部屬性是[[Scope]],由ECMA-262標(biāo)準(zhǔn)第三版定義,該內(nèi)部屬性包含了函數(shù)被創(chuàng)建的作用域中對(duì)象的集合,這個(gè)集合被稱為函數(shù)的作用域鏈,它決定了哪些數(shù)據(jù)能被函數(shù)訪問(wèn)。

當(dāng)一個(gè)函數(shù)創(chuàng)建后,它的作用域鏈會(huì)被創(chuàng)建此函數(shù)的作用域中可訪問(wèn)的數(shù)據(jù)對(duì)象填充。例如定義下面這樣一個(gè)函數(shù):

  1. function add(num1,num2) {  
  2.     var sum = num1 + num2;  
  3.     return sum;  

在函數(shù)add創(chuàng)建時(shí),它的作用域鏈中會(huì)填入一個(gè)全局對(duì)象,該全局對(duì)象包含了所有全局變量,如下圖所示(注意:圖片只例舉了全部變量中的一部分):

 

JavaScript作用域鏈

 

函數(shù)add的作用域?qū)?huì)在執(zhí)行時(shí)用到。例如執(zhí)行如下代碼:

  1. var total = add(5,10); 

執(zhí)行此函數(shù)時(shí)會(huì)創(chuàng)建一個(gè)稱為“運(yùn)行期上下文(execution context)”的內(nèi)部對(duì)象,運(yùn)行期上下文定義了函數(shù)執(zhí)行時(shí)的環(huán)境。每個(gè)運(yùn)行期上下文都有自己的作用域鏈,用于標(biāo)識(shí)符解析,當(dāng)運(yùn)行期上下文被創(chuàng)建時(shí),而它的作用域鏈初始化為當(dāng)前運(yùn)行函數(shù)的[[Scope]]所包含的對(duì)象。

這些值按照它們出現(xiàn)在函數(shù)中的順序被復(fù)制到運(yùn)行期上下文的作用域鏈中。它們共同組成了一個(gè)新的對(duì)象,叫“活動(dòng)對(duì)象(activation object)”,該對(duì)象包含了函數(shù)的所有局部變量、命名參數(shù)、參數(shù)集合以及this,然后此對(duì)象會(huì)被推入作用域鏈的前端,當(dāng)運(yùn)行期上下文被銷毀,活動(dòng)對(duì)象也隨之銷毀。新的作用域鏈如下圖所示:

 

JavaScript作用域鏈

 

在函數(shù)執(zhí)行過(guò)程中,沒(méi)遇到一個(gè)變量,都會(huì)經(jīng)歷一次標(biāo)識(shí)符解析過(guò)程以決定從哪里獲取和存儲(chǔ)數(shù)據(jù)。該過(guò)程從作用域鏈頭部,也就是從活動(dòng)對(duì)象開(kāi)始搜索,查找同名的標(biāo)識(shí)符,如果找到了就使用這個(gè)標(biāo)識(shí)符對(duì)應(yīng)的變量,如果沒(méi)找到繼續(xù)搜索作用域鏈中的下一個(gè)對(duì)象,如果搜索完所有對(duì)象都未找到,則認(rèn)為該標(biāo)識(shí)符未定義。函數(shù)執(zhí)行過(guò)程中,每個(gè)標(biāo)識(shí)符都要經(jīng)歷這樣的搜索過(guò)程。

作用域鏈和代碼優(yōu)化

從作用域鏈的結(jié)構(gòu)可以看出,在運(yùn)行期上下文的作用域鏈中,標(biāo)識(shí)符所在的位置越深,讀寫(xiě)速度就會(huì)越慢。如上圖所示,因?yàn)槿肿兞靠偸谴嬖谟谶\(yùn)行期上下文作用域鏈的最末端,因此在標(biāo)識(shí)符解析的時(shí)候,查找全局變量是最慢的。所以,在編寫(xiě)代碼的時(shí)候應(yīng)盡量少使用全局變量,盡可能使用局部變量。一個(gè)好的經(jīng)驗(yàn)法則是:如果一個(gè)跨作用域的對(duì)象被引用了一次以上,則先把它存儲(chǔ)到局部變量里再使用。例如下面的代碼:

  1. function changeColor(){  
  2.     document.getElementById("btnChange").onclick=function(){  
  3.         document.getElementById("targetCanvas").style.backgroundColor="red";  
  4.     };  

這個(gè)函數(shù)引用了兩次全局變量document,查找該變量必須遍歷整個(gè)作用域鏈,直到最后在全局對(duì)象中才能找到。這段代碼可以重寫(xiě)如下:

  1. function changeColor(){  
  2.     var doc=document;  
  3.     doc.getElementById("btnChange").onclick=function(){  
  4.         doc.getElementById("targetCanvas").style.backgroundColor="red";  
  5.     };  

這段代碼比較簡(jiǎn)單,重寫(xiě)后不會(huì)顯示出巨大的性能提升,但是如果程序中有大量的全局變量被從反復(fù)訪問(wèn),那么重寫(xiě)后的代碼性能會(huì)有顯著改善。

改變作用域鏈

函數(shù)每次執(zhí)行時(shí)對(duì)應(yīng)的運(yùn)行期上下文都是獨(dú)一無(wú)二的,所以多次調(diào)用同一個(gè)函數(shù)就會(huì)導(dǎo)致創(chuàng)建多個(gè)運(yùn)行期上下文,當(dāng)函數(shù)執(zhí)行完畢,執(zhí)行上下文會(huì)被銷毀。每一個(gè)運(yùn)行期上下文都和一個(gè)作用域鏈關(guān)聯(lián)。一般情況下,在運(yùn)行期上下文運(yùn)行的過(guò)程中,其作用域鏈只會(huì)被 with 語(yǔ)句和 catch 語(yǔ)句影響。

with語(yǔ)句是對(duì)象的快捷應(yīng)用方式,用來(lái)避免書(shū)寫(xiě)重復(fù)代碼。例如:

  1. function initUI(){  
  2.     with(document){  
  3.         var bd=body,  
  4.             links=getElementsByTagName("a"),  
  5.             i=0,  
  6.             len=links.length;  
  7.         while(i < len){  
  8.             update(links[i++]);  
  9.         }  
  10.         getElementById("btnInit").onclick=function(){  
  11.             doSomething();  
  12.         };  
  13.     }  

這里使用width語(yǔ)句來(lái)避免多次書(shū)寫(xiě)document,看上去更高效,實(shí)際上產(chǎn)生了性能問(wèn)題。

當(dāng)代碼運(yùn)行到with語(yǔ)句時(shí),運(yùn)行期上下文的作用域鏈臨時(shí)被改變了。一個(gè)新的可變對(duì)象被創(chuàng)建,它包含了參數(shù)指定的對(duì)象的所有屬性。這個(gè)對(duì)象將被推入作用域鏈的頭部,這意味著函數(shù)的所有局部變量現(xiàn)在處于第二個(gè)作用域鏈對(duì)象中,因此訪問(wèn)代價(jià)更高了。如下圖所示:

 

JavaScript作用域鏈

 

因此在程序中應(yīng)避免使用with語(yǔ)句,在這個(gè)例子中,只要簡(jiǎn)單的把document存儲(chǔ)在一個(gè)局部變量中就可以提升性能。

另外一個(gè)會(huì)改變作用域鏈的是try-catch語(yǔ)句中的catch語(yǔ)句。當(dāng)try代碼塊中發(fā)生錯(cuò)誤時(shí),執(zhí)行過(guò)程會(huì)跳轉(zhuǎn)到catch語(yǔ)句,然后把異常對(duì)象推入一個(gè)可變對(duì)象并置于作用域的頭部。在catch代碼塊內(nèi)部,函數(shù)的所有局部變量將會(huì)被放在第二個(gè)作用域鏈對(duì)象中。示例代碼:

  1. try{  
  2.     doSomething();  
  3. }catch(ex){  
  4.     alert(ex.message); //作用域鏈在此處改變  

請(qǐng)注意,一旦catch語(yǔ)句執(zhí)行完畢,作用域鏈機(jī)會(huì)返回到之前的狀態(tài)。try-catch語(yǔ)句在代碼調(diào)試和異常處理中非常有用,因此不建議完全避免。你可以通過(guò)優(yōu)化代碼來(lái)減少catch語(yǔ)句對(duì)性能的影響。一個(gè)很好的模式是將錯(cuò)誤委托給一個(gè)函數(shù)處理,例如:

  1. try{  
  2.     doSomething();  
  3. }catch(ex){  
  4.     handleError(ex); //委托給處理器方法  

優(yōu)化后的代碼,handleError方法是catch子句中唯一執(zhí)行的代碼。該函數(shù)接收異常對(duì)象作為參數(shù),這樣你可以更加靈活和統(tǒng)一的處理錯(cuò)誤。由于只執(zhí)行一條語(yǔ)句,且沒(méi)有局部變量的訪問(wèn),作用域鏈的臨時(shí)改變就不會(huì)影響代碼性能了。

原文:http://www.cnblogs.com/lhb25/

【編輯推薦】

  1. JavaScript設(shè)計(jì)模式深入分析
  2. JavaScript有關(guān)的10個(gè)秘密和怪癖
  3. 10個(gè)頂級(jí)Web移動(dòng)開(kāi)發(fā)JavaScript框架推薦
  4. JavaScript入門之語(yǔ)言基礎(chǔ)
  5. 7個(gè)優(yōu)秀的JavaScript資源推薦
責(zé)任編輯:陳貽新 來(lái)源: 夢(mèng)想天空
相關(guān)推薦

2019-03-13 08:00:00

JavaScript作用域前端

2021-03-09 08:35:51

JSS作用域前端

2017-09-14 13:55:57

JavaScript

2011-05-12 18:26:08

Javascript作用域

2011-04-18 09:31:35

JavaScript

2021-03-17 08:39:24

作用域作用域鏈JavaScript

2021-03-16 22:25:06

作用域鏈作用域JavaScript

2013-09-05 10:07:34

javaScript變量

2021-03-09 08:50:58

JavaScript前端作用域

2021-06-02 07:02:42

js作用域函數(shù)

2021-12-06 07:15:48

Javascript作用域閉包

2016-12-19 11:10:32

JavaScript變量作用域

2009-12-09 14:04:45

PHP include

2010-09-25 16:10:09

添加DHCP作用域

2015-07-21 13:39:58

Javascript作用域

2012-01-05 15:07:11

JavaScript

2015-08-18 13:42:42

js作用域鏈變量

2021-06-10 18:11:02

Cors跨域Web開(kāi)發(fā)Cors

2015-11-26 13:11:24

javascript原型鏈作用域

2010-08-25 15:19:20

DHCP作用域
點(diǎn)贊
收藏

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

91免费视频播放| 一级特黄曰皮片视频| bl在线肉h视频大尺度| 成人精品免费视频| 国产精国产精品| 黄色一级大片在线免费观看| 国产精品qvod| 欧美午夜免费电影| 日韩极品视频在线观看| 免费黄色在线视频网站| 国产做a爰片久久毛片| 亚洲 日韩 国产第一| 999福利视频| 福利在线一区| 欧美日本韩国一区| 欧美 日韩 国产 高清| 欧美极品另类| 91免费观看在线| 亚洲va男人天堂| 黑人精品无码一区二区三区AV| 91综合视频| 国产网站欧美日韩免费精品在线观看 | 亚洲国产精品尤物yw在线观看| 日本精品一区二区三区视频| 黄频网站在线观看| 久久99精品久久久久| 欧美在线xxx| 国产亚洲成人精品| 国产精品麻豆久久| 夜夜躁日日躁狠狠久久88av | 久久久久久久久久久99999| 91久久中文字幕| 波多野结衣一二区| 91久久夜色精品国产九色| 日韩小视频在线观看| 免费污网站在线观看| 大桥未久女教师av一区二区| 欧美日高清视频| 黄色片在线免费| 中文在线аv在线| 午夜在线成人av| 国产精品一线二线三线| av片在线观看永久免费| 国产精品剧情在线亚洲| 色一情一乱一伦一区二区三区 | 和岳每晚弄的高潮嗷嗷叫视频| 午夜在线观看视频| 国产午夜亚洲精品理论片色戒| 国产一区二区自拍| 亚洲国产精品欧美久久| 国产在线观看一区二区| 成人观看高清在线观看免费| 中文字幕免费高清在线观看| 日韩高清在线电影| 国产高清视频一区三区| 久久久精品毛片| 老**午夜毛片一区二区三区| 欧洲精品在线视频| 天堂网视频在线| 米奇777在线欧美播放| 欧洲永久精品大片ww免费漫画| 日韩精品――中文字幕| 一区在线播放| 456亚洲影院| 亚洲av无码精品一区二区| 久久精品网址| 国产精品视频xxx| jizz国产在线| 久久成人麻豆午夜电影| 亚洲综合社区网| 免费观看的毛片| 91网站黄www| 欧美精品一区二区三区在线看午夜 | 亚洲乱码国产乱码精品精天堂| 你懂的在线观看网站| 日韩动漫一区| 在线视频国产日韩| 日韩三级在线观看视频| 国产一区二区三区自拍| 欧美亚洲伦理www| 中文精品久久久久人妻不卡| 韩国精品一区二区| 产国精品偷在线| 青青免费在线视频| 国产精品毛片高清在线完整版| 久久99国产精品一区| 国产天堂在线播放视频| 日韩欧美黄色动漫| 天堂av在线8| jizz性欧美23| 一区二区三区视频免费| 五月天婷婷色综合| 久久精品三级| 99视频免费观看蜜桃视频| 天堂网www中文在线| 国产精品久久久久久久久久久免费看 | 亚洲欧美日韩精品一区二区| 国产精品久久不能| 国产综合无码一区二区色蜜蜜| 91麻豆免费在线观看| 一区二区免费在线观看| free性护士videos欧美| 欧美日韩视频一区二区| 一级黄色电影片| 精品国产一区二区三区| 久久久久久久久久av| 国产99久久久久久免费看| 粉嫩久久99精品久久久久久夜 | 国产女人在线观看| 尤物av一区二区| 国产三级日本三级在线播放| 成人精品毛片| www.亚洲天堂| 无码人妻精品一区二区三区蜜桃91| 国产在线日韩欧美| 日本精品一区二区| 欧美a级在线观看| 日韩你懂的电影在线观看| 免费看日本黄色片| 一区二区三区四区五区在线 | 欧美午夜精彩| 国内揄拍国内精品少妇国语| ,一级淫片a看免费| 久久综合给合久久狠狠狠97色69| 777久久精品一区二区三区无码| 亚洲va中文在线播放免费| 精品精品国产高清一毛片一天堂| 美国精品一区二区| 玖玖在线精品| 欧美精品一区二区视频 | 国产精品高潮在线| 色久视频在线播放| 亚洲成人资源在线| 国产麻豆剧传媒精品国产| 亚洲h色精品| 国产在线久久久| 成年网站在线| 日本高清无吗v一区| 黄色性生活一级片| 亚洲少妇在线| 久久久久资源| 国产免费拔擦拔擦8x高清在线人| 日韩天堂在线观看| 四虎永久免费在线| 国产精品一区二区视频| 国产香蕉一区二区三区| 国产区一区二| 久久国产色av| 精品人妻一区二区三区三区四区 | 日本高清www免费视频| 粉嫩久久99精品久久久久久夜| 国产一二三四区在线观看| 欧美成人一二区| 久久精品久久久久电影| 一区二区www| 亚洲女同女同女同女同女同69| www.污污视频| 影视一区二区| 高清不卡日本v二区在线| 黑人精品视频| 日韩电影在线观看中文字幕| 中文字幕亚洲精品在线| 2017欧美狠狠色| 日本三区在线观看| 日韩欧美伦理| 99国产在线观看| 国产理论电影在线| 亚洲免费av电影| 自拍偷拍精品视频| 自拍偷拍亚洲欧美日韩| 一级少妇精品久久久久久久| 99国产精品| 欧美大陆一区二区| 992tv国产精品成人影院| 久久精品国产96久久久香蕉| 精品国产无码一区二区| 精品久久久久久国产91| 亚洲天堂岛国片| 国产一区三区三区| 日韩av新片网| 国产中文字幕一区二区三区| 成人精品在线观看| 国产直播在线| 日韩一级黄色av| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 色噜噜狠狠一区二区三区果冻| 美国黄色特级片| 国产99久久久国产精品潘金| 高清在线观看免费| 欧美超碰在线| 精品久久久久久亚洲| 99只有精品| 色综合久久88| www亚洲人| 亚洲аv电影天堂网| 中文有码在线播放| 亚洲无人区一区| 国产在线综合视频| 成人永久看片免费视频天堂| 久久精品网站视频| 综合久久一区| 亚洲成人自拍| 久久大胆人体视频| 成人日韩在线电影| 电影一区二区三| 久久久久久久爱| 香蕉视频在线播放| 亚洲欧美国产精品久久久久久久 | 黄瓜视频在线免费观看| 亚洲日本va午夜在线影院| 一区二区视频观看| 国产成人av一区| 爱爱爱爱免费视频| 性高湖久久久久久久久| 久久久无码中文字幕久...| 国产一区毛片| 精品亚洲一区二区三区四区五区高| 国产精品va视频| 国产91在线视频| 国产不卡人人| 欧美激情二区三区| 黄色免费在线观看网站| 亚洲一区二区久久| 亚洲三区在线播放| 欧美成人bangbros| 国产精品久久久久久久免费看| 欧美性猛交xxxx乱大交3| 国产在线视频卡一卡二| 亚洲免费资源在线播放| 99精品全国免费观看| 久久久久综合网| 精品夜夜澡人妻无码av | 欧美日韩国产成人在线91| 国产成人亚洲欧洲在线| 亚洲成人动漫av| 久久久美女视频| 一级精品视频在线观看宜春院| 在线观看天堂av| 中文在线免费一区三区高中清不卡| 欧美熟妇精品黑人巨大一二三区| a亚洲天堂av| 稀缺小u女呦精品呦| 国产成人av影院| 99久久综合网| 福利一区在线观看| 中文字幕在线视频播放| av中文一区二区三区| 欧美极品jizzhd欧美仙踪林| 成人精品鲁一区一区二区| 日韩av无码一区二区三区不卡| 成人免费视频网站在线观看| 成年人小视频在线观看| aaa亚洲精品| 91网站免费视频| 国产精品视频你懂的| 欧美亚洲色综久久精品国产| 国产欧美精品一区二区三区四区| 成人在线一级片| 国产精品日韩精品欧美在线| 国产中文av在线| 亚洲欧美电影一区二区| 国产一级片免费观看| 懂色av中文一区二区三区天美| 国产精品久免费的黄网站| 色成年激情久久综合| www.亚洲激情| 欧美夫妻性生活| 国产后入清纯学生妹| 亚洲国产三级网| 国外av在线| 不卡av在线网站| av在线加勒比| 欧美在线视频导航| 国产成人精品一区二区三区免费| 91久久久久久| 少妇高潮一区二区三区| 午夜老司机精品| 欧美欧美全黄| 欧美日韩中文在线视频| 捆绑紧缚一区二区三区视频| 中文字幕久久久久久久| 久久色.com| 国产日产精品一区二区三区的介绍| 一片黄亚洲嫩模| 国产无套丰满白嫩对白| 制服.丝袜.亚洲.另类.中文| 日韩在线视频免费| 中文字幕少妇一区二区三区| 三级资源在线| 国产成人精品av在线| 亚洲日本va午夜在线电影| 免费精品视频一区二区三区| 久久中文字幕二区| 欧美三级在线观看视频| 麻豆免费精品视频| 捆绑凌虐一区二区三区| 中文字幕在线观看不卡| 国产精品久久久久久99| 在线播放欧美女士性生活| 天堂中文资源在线观看| 久久中文精品视频| 97成人资源| 国产成人精品一区二区三区福利| 狠狠做深爱婷婷综合一区| 男人添女人荫蒂免费视频| 日本va欧美va瓶| 影音先锋黄色资源| 亚洲免费伊人电影| 四虎影院在线免费播放| 亚洲精品一区二区三区四区高清 | 亚洲综合图色| www.99riav| 美腿丝袜亚洲一区| 魔女鞋交玉足榨精调教| 尤物在线观看一区| 国产精品嫩草影院精东| 在线亚洲欧美视频| 不卡一二三区| 国产精品白丝jk白祙| 亚洲综合婷婷| 五月激情婷婷在线| 久久久久久一级片| 成人免费看片98欧美| 精品欧美久久久| 国产精品一卡二卡三卡| 国产精品人成电影| 中文字幕精品影院| 男人日女人逼逼| 成人av一区二区三区| 九九热精品免费视频| 4438成人网| 免费在线看黄色| 国产美女被下药99| 欧美色图国产精品| 日韩一级免费在线观看| 91丨九色丨蝌蚪富婆spa| 四虎永久在线精品| 精品国产乱码久久| 黄色小说在线播放| 国产精品久久久久久久久婷婷| 欧美日韩国产精品一区二区亚洲| 一区二区三区四区毛片| 国产精品毛片久久久久久久| 小泽玛利亚一区二区三区视频| 伊人一区二区三区久久精品| 91av亚洲| 色中色综合成人| 免费高清在线一区| 午夜激情福利电影| 欧美一区二区国产| 欧美韩日亚洲| 狠狠色综合色区| 小嫩嫩精品导航| 午夜精产品一区二区在线观看的| 在线一区二区视频| av在线免费观看网站| 国产视频999| 午夜精彩国产免费不卡不顿大片| 韩国三级hd中文字幕有哪些| 亚洲国产日韩av| 深夜福利在线视频| 国产成人91久久精品| 日韩一区二区在线| 中文字幕 日韩 欧美| 亚洲男同性视频| 少妇av在线播放| 国产精品大片wwwwww| 99热国内精品永久免费观看| 少妇高潮一69aⅹ| 精品久久久久久久久久久久| 欧美日韩伦理片| 国产日韩精品视频| 国产精品videosex极品| 少妇精品一区二区| 欧美午夜精品免费| 91福利国产在线观看菠萝蜜| 国产福利久久精品| 久久久久久久欧美精品| 亚洲精品电影院| 亚洲国产91色在线| 99久久亚洲国产日韩美女 | 丁香花高清在线观看完整版| 精品日本一区二区三区| 欧美aaaaaa午夜精品| 欧美黄色一级网站| 亚洲网站在线观看| 欧洲一区在线| 亚洲自偷自拍熟女另类| 中文字幕日韩一区二区| 可以免费看毛片的网站| 国产精品久久二区| 国内精品美女在线观看| 亚洲第一综合网| 精品国产一区二区三区久久久蜜月 | 波多野结衣精品| 亚洲精品成人自拍| 9久草视频在线视频精品| 一区二区美女视频| 欧美自拍视频在线| 国内自拍一区|